최근 인터페이스 테스트를 위해 Python을 사용하다가 Python에 http 요청 메소드가 많다는 것을 발견했습니다. 오늘은 시간을 내어 관련 내용을 정리하여 여러분께 공유해 드립니다.
1. Python 자체 라이브러리 - ---urllib2
Python의 내장 라이브러리인 urllib2가 일반적으로 사용됩니다. 간단한 사용법은 다음과 같습니다.
import urllib2
response = urllib2.urlopen('http://localhost :8080/jenkins/api/json?pretty=true')
print response.read()
간단한 요청 가져오기
import urllib2
import urllib
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost:8080/, post_data)
print response.read()
print response.getheaders()
이것은 게시물을 보내는 urllib2의 가장 간단한 예입니다. 코드가 많아요
2. 파이썬 자체 라이브러리 - httplib
httplib는 상대적으로 낮은 수준의 http 요청 모듈이며, urlib는 httplib를 기반으로 캡슐화되어 있습니다. 간단한 사용법은 다음과 같습니다:
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn .getresponse()
print r1.status, r1.reason
data1 = r1.read()
conn.request("GET", "/parrot.spam")
r2 = conn.getresponse()
data2 = r2.read()
conn.close()
간단한 get 요청
post 요청을 살펴보겠습니다
import httplib, urllib
params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application / x-www-form-urlencoded", "수락": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "" , params, headers)
response = conn.getresponse()
data = response.read()
인쇄 데이터
conn.close()
생각하시나요? 너무 복잡해요? 글을 쓸 때마다 문서를 읽어야 합니다. 세 번째 항목을 살펴보겠습니다
3. 타사 라이브러리-요청
get 요청 보내기는 매우 간단합니다.
인쇄 요청 .get('http: //localhost:8080).text
한 문장으로 포스팅 요청을 살펴보겠습니다
payload = {'key1': 'value1', 'key2': 'value2'}
r = request.post("http://httpbin.org/post", data=payload)
print r.text
또한 매우 간단합니다.
인증하려면 다시 확인하세요.
url = 'http://localhost:8080'
r = request.post(url, data={}, auth=HTTPBasicAuth('admin) ' , 'admin'))
print r.status_code
print r.headers
print r.reason
urllib2보다 훨씬 간단하지 않나요? 요청은 json 구문 분석과 함께 제공됩니다. 훌륭해요
파이썬의 http 요청
import urllib
params = urllib.urlencode({key:value,key:value})
resultHtml = urllib.urlopen('[ API 또는 URL]',params)
result = resultHtml.read()
결과 인쇄