Python http requests module
도구의인간 메이커스 위키
목차
HTTP request in Python : requests module
python의 requests 모듈을 사용해 REST 프로토콜을 쉽게 다룰 수 있다. 너무 널리사용되는, 사실상의 파이선 내장모듈이라고 볼 수 있다. 참고: https://realpython.com/api-integration-in-python/ 공식문서: https://2.python-requests.org/en/master/
설치
$ pip install requests
- 아마도 대부분의 경우 기본으로 설치되어있음
기본 사용법
basic get
get(), post(), put() 메소드를 가지고 있고 서버의 응답이 이들 메소드의 리턴이 된다. 심플하다.
import requests URL = ''https://todolist.example.com/tasks/'' resp = requests.get(URL) if resp.status_code == 200: # OK for item in resp.json(): print(item) else : # something wrong raise ApiError(resp.status_code)
- resp.json()의 리턴은 파이썬 오브젝트다 일반 딕셔너리나 리스트처럼 간편하게 다룰 수 있다.
- raw data를 그대로 보려면 'resp.text' 프로퍼티를 사용하면 된다.
parameter 전달
get() 메소드에 'params=' 아규먼트를 추가해 보낸다
params = {'key':'value'} res = requests.get('http://www.tistoty.com', params=params) print(res.url) # http:./www.tistody.com/?key=value
header 전달
get(), post() 메소드에 'headers=' 아규먼트를 추가해 보낸다.
data 전달
post() 메소드에 'data=' 아규먼트를 추가해 보낸다.
body = {"key1": "value1", "key2": "value2" } resp = requests.post(URL, data=json.dumps(body), headers={'Content-Type':'application/json'}, )
혹은 'data=' 대신에 'json='아규먼트를 사용하면 requests가 알아서 딕셔너리를 json으로 바꾸어준다. 아래 예는 위 코드와 동일하다.
resp = requests.post(URL,json=body)