Requests 사용법 정리

Peroro·2023년 4월 29일
0
post-custom-banner

1. requests 설치

pip3 install requests

2. requests import

import requests

3. request 보내기

URL = 'https:www.example.com:1997/'

response = requests.get(URL)
response = requests.post(URL)
response = requests.put(URL)
response = requests.head(URL)
  • 이 이외에도 delete, options, patch 요청이 있지만 주로 사용하는 요청들은 GET, POST를 사용한다.

4. GET 요청

URL = 'https:www.example.com:1997/'
response = requests.get(URL)
  • 파라미터를 전달할 때
URL = 'https:www.example.com:1997/login.php?para='
word = 'test'
response = requests.get(URL+word)

아니면, format을 이용하는 방법도 있다.

URL = 'https:www.example.com:1997/login.php?para1={}&para2={}'
word1 = 'test1'
word2 = 'test2'
response = requests.get(URL.format(word1, word2))

5. POST 요청

URL = 'https:www.example.com:1997/login.php'
params = {'key1': 'value', 'key2': 'value2'...}
response = requests.post(URL, data=params)
  • 파라미터의 경우 딕셔너리 형태로 전달된다.
  • 데이터를 바꾸면서 보내고 싶다면, params에 접근해 값을 바꾼 후 전달하는 것이 좋다.
params = {'key1': 'value', 'key2': 'value2'...}
params['key2'] = 'new value'
response = requests.post(URL, data=params)
  • 데이터를 바꿀 때, key값이 오타나면 딕셔너리 가장 뒤에 추가되니 주의해야 한다.

6. allow_redirects

response = requests.get(URL+word, allow_redirects = False)
response = requests.post(URL, data=params, allow_redirects = False)
  • allow_redirects가 참일 경우, 자동으로 redirect해준다.
  • 평소에는 큰 문제가 없지만, Blind SQLI를 시도할 때 이걸 False로 해두지 않는다면 무조건 status_code를 200으로 받는다.(아니면 404)
  • 자동으로 redirect되기 때문이다.
  • status_code를 통해 구별을 하고 싶다면 allow_redirects을 사용해야 한다.
  • 모든 요청에 다 사용할 수 있다.
  • False의 경우 무조건 앞 글자를 대문자로 해야한다.

7. response

request를 했으면 서버로부터의 response를 받게 되는데, 이 변수에 접근할 수 있는 함수 및 속성이다.

response.status_code //response 객체의 HTTP 응답 상태 코드.
response.headers //response 객체의 HTTP 응답 헤더. 이 속성은 딕셔너리 형태로 반환.
response.content //response 객체의 HTTP 응답 본문. 이 속성은 바이너리 형태로 반환.

response.text //response 객체의 HTTP 응답 본문을 가져옴. 이 속성은 유니코드 형태로 반환.
response.json() //response 객체의 HTTP 응답 본문을 JSON 형태로 가져옴. 이 함수는 response.text 속성에서 파싱된 JSON 객체를 반환.
response.raise_for_status() //response 객체에서 HTTP 오류 코드가 발생한 경우 예외를 발생. 이 함수를 사용하면 HTTP 오류 처리를 간단하게 가능함.

response.elapsed response //객체의 요청-응답 시간을 나타내는 timedelta 객체를 가져옴.

7. request 객체

request = response.request //response가 보낸 request를 확인할 수 있음.
//request.url
//request.headers

url, headers, method, body, params, cookies, auth등등 여러 속성에 접근할 수 있다.

profile
오늘 공부한 것을 올리는 공간 / 일주일에 글 3개 / 블로그 이전 : https://perorochan321.tistory.com/
post-custom-banner

0개의 댓글