하얀설표 블로그




해결)requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: *





( 수정됨)


에러

import requests
url = 'https://httpstat.us/400'
with requests.get(url) as r:
    print(r.status_code)
    r.raise_for_status()

위 예시 코드를 실행하면 다음과 같은 내용의 에러가 발생한다.

에러 예시

>> 400
Traceback (most recent call last):
  File "*.py", line 5, in <module>
    r.raise_for_status()
  File "\Python\Python311\site-packages\requests\models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://httpstat.us/400

해결방법

상태코드 200으로 응답하는 url을 입력해준다.

설명

raise_for_status() 명령은 r.status_code의 값이 200이 아니면 raise하는 함수다.
즉, http 접속이 정상이 아닌 url에 응답을 요청한 것이라는 뜻이 되므로 해당 url이 정상작동하는지 확인이 필요하다.

예시 코드를 수정한다면 다음과 같이 수정할 수 있다.

import requests
url = 'https://httpstat.us/200'
# https://white.seolpyo.com/
with requests.get(url) as r:
    print(r.status_code)
    r.raise_for_status()
>> 200


공감 : 0







white.seolpyo.com