Response 응답객체
requests 모듈을 사용하여 url을 호출하면 Response 객체를 반환해 줍니다. Response 객체가 값고 있는 값들에 대해 알아봅니다.
🧩1. Response 응답객체
request에 대한 반환 객체
- 요청(request)을 보내면 응답(response) 객체를 받습니다. 이 응답 객체는 많은 정보와 기능을 가지고 있습니다.
명령어 | 기능 | 설명 | 예시 |
---|---|---|---|
r.status_code |
Response Status Codes | 서버에서 보내는 응답코드 값을 반환합니다. | 200 |
r.headers | Response Headers | dictionary 형태로 http 응답 헤드 값을 보여줍니다. | { 'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'connection': 'close', 'server': 'nginx/1.0.4', 'x-runtime': '148ms', 'etag': '"e1ca502697e5c9317743dc078f67693f"', 'content-type': 'application/json' } |
r.cookies['example_cookie_name'] |
Cookies | 쿠키 값을 가지고 있다면 반환합니다. | 'example_cookie_value' |
r.url | Url | 요청된 Url을 반환합니다. | 'https://github.com/' |
r.history |
Response object to track redirection. | 리다이렉션 여부를 체크합니다. | [<Response [301]>] |
r.text |
Response Content | unicode charsets 형태로 반환 받습니다. | '[{"repository":{"open_issues":0,"url":"https://github.com/... |
r.encoding |
Encoding of the response | response 객체의 인코딩 형태를 반환합니다. | 'utf-8' |
r.content | Binary Response Content | bytes 형태로 response 객체를 반환 받습니다. | b'[{"repository":{"open_issues":0,"url":"https://github.com/... |
r.json() | JSON Response Content | response 딕셔너리 타입을 json 형태로 반환합니다. | [{'repository': {'open_issues': 0, 'url': 'https://github.com/... |
r.raw | Raw Response Content | 서버로부터 socket response를 raw 형태로 반환 받습니다. | <urllib3.response.HTTPResponse object at 0x101194810> |
🧩2. Request 요청 방법
Requests 모듈 get() 함수
- 서버로 응답 요청하는 방법
import requests
#get 방식
r = requests.get('https://api.github.com/events')
#post 방식
r = requests.post('https://httpbin.org/post', data = {'key':'value'})
- 요청 시 헤더를 추가하는 방법
import requests
from requests.structures import CaseInsensitiveDict
url = "https://reqbin.com/echo/post/json"
headers = CaseInsensitiveDict()
headers["Accept"] = "application/json"
headers["charset"] = "utf-8"
headers["Content-Type"] = "application/json"
data = """
{
"Id": 78912,
"Customer": "Jason Sweet",
"Quantity": 1,
"Price": 18.00
}
"""
resp = requests.post(url, headers=headers, data=data)
print(resp.status_code)
0 댓글