Timeout and Redirection, File Sending

Dahun Yoo·2020년 12월 10일
0
post-thumbnail

Redirection

어떤 페이지를 접속할 때에, redirection이 발생할 수 있습니다.
특정 페이지 혹은 resource에서 다른 페이지, resource로 자동으로 이동하는 것입니다.
이때, redirection이 진행될때 3xx의 status code가 반환됩니다. redirection이 끝난 이후 정상적으로 이동되었다면 2xx의 status code가 반환될 것 입니다.

이러한 request의 response에서, history attribute를 확인한다면 redirect한 이력을 확인해볼 수도 있습니다.
response.history

redirect가 제대로 진행되고 있는지 확인하기 위해, redirect하지 않고 status code가 3xx 인채로 유지되고 있는 것을 확인하고 싶을 수도 있습니다.
이럴 때는 아래와 같이 allow_redirects=False 설정을 해줍니다.

response = requests.get("{API_EndPoint}", allow_redirects=False)

이렇게하면 redirect해야할 때 처리되지 않고 상태를 유지하게 됩니다.


Timeout

어떠한 요소가 로딩될때까지 시간이 걸릴 때가 있습니다. 이때 일정시간만큼 request를 대기하는 조건도 있습니다.
request의 파라미터로 timeout= 을 지정해줍니다.
단위는 sec단위입니다.

timeout=1 일때 1초 대기.


File sending

POST request에서는 파일을 보내야할 때도 있습니다.
간단하게 아래와 같이 진행해줍니다.

files = {'file' : open('report.xls, 'rb')}

r = requests.post(url, files=files)

rb 는 read/write 모드입니다.

Access modeDescription
ronly read
rbonly read binary format
r+read and write
rb+read and write binary format
wonly write
wbonly write binary format
w+write and read
wb+write and read binary format

Ref.
https://developer.mozilla.org/ko/docs/Web/HTTP/Status#%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98_%EB%A9%94%EC%8B%9C%EC%A7%80
https://www.tutorialsteacher.com/python/python-read-write-file

profile
QA Engineer

0개의 댓글