python 은 urllib 와 urllib 2 를 이용 하여 http 의 GET/POST 에 접근 합 니 다.

2704 단어 get/posthttpurllib2
머리말
본 고 는 python 이 http 의 GET/POST 를 어떻게 방문 하 는 지 에 관 한 내용 을 소개 하고 있 습 니 다.urllib 와 urllib 2 를 사용 하면 http 에 대한 방문 을 쉽게 실현 할 수 있 습 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
예 를 들 어 상세 하 게 해석 하 다.
다음은 예 를 들 어 옳 은 것 을 실현 한다.http://127.0.0.1/cgi/testGET 와 POST
일반적인 의미 의 query string 을 사용 합 니 다.
POST 제 이 슨 받 아들 이기
그 중
urllib 2 의 Request 방법 은 하나의 인자 만 가 져 오 는 것 이 GET 방법 이지 만 두 개의 인 자 를 가 져 오 면 http 의 POST 방법 이 고 두 번 째 인 자 는 POST 의 내용 입 니 다.

#!/usr/bin/env python
 
import urllib
import urllib2
import json
 
url_base = "http://127.0.0.1/cgi/test"
 
#GET
try:
 query = {'test':'yes','name':'colin'}
 query_string = urllib.urlencode(query)
 url = url_base+"?"+query_string
 print "GET", url<br data-filtered="filtered"> print "web output:"
 print urllib2.urlopen(urllib2.Request(url)).read()
except Exception as err:
 print err
 
#post
try:
 url = url_base
 print "POST", url
 a = {'k1':123, 'k2': '456', 'k3':'test'}
 json_s = json.dumps(a)<br data-filtered="filtered"> print "POST input:"
 print json_s<br data-filtered="filtered"> print "web output:"
 print urllib2.urlopen(urllib2.Request(url, json_s)).read()
except Exception as err:
 print err
test 는 bash 로 작 성 됩 니 다.다음 과 같 습 니 다.jq 는 json 을 처리 하 는 명령 입 니 다.다운로드 해 야 합 니 다.bash/sed/awk 는 모두 시스템 자체 테이프 일 것 입 니 다.

#!/bin/bash
echo -e 'Content-type:text/plain\r'
echo -e '\r'
 
if [ X"$REQUEST_METHOD" = X"POST" ];then
  jq . | sed -nr '/:/!d; s/^([ \t]*"[^"]+"[ \t]*):/\1=/;s/,[ \t]*$//;s/"//g;p'
else
  echo ${QUERY_STRING} | awk 'BEGIN{RS="&"}1'
fi
아무 웹 서버 나 사용 할 수 있 습 니 다.CGI 만 지원 하면 가 벼 운 웹 서버 인 boa 를 사용 합 니 다.대형 애플 리 케 이 션 사이트 에 적합 하지 않 을 수도 있 지만 끼 워 넣 은 CGI 로 API 를 제공 하 는 것 이 유용 하고 배치 가 쉽 습 니 다.
건설 후 테스트 해 보 세 요.

$ ./test.py
GET http://127.0.0.1/v1/lic/test?test=yes&name=colin
web output:
test=yes
name=colin


POST http://127.0.0.1/v1/lic/test
POST input:
{"k3": "test", "k2": "456", "k1": 123}
web output:
 k3= test
 k2= 456
 k1= 123
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기