python requestsレスポンス値の判断方法
この間は技術的にあまり考えられませんでしたが、エビの問題に遭遇しただけです。往々にして問題が大きくないので、あなたの心を込めて解決することもできます。
今回はreqeustsの戻り値に問題がありました。短い時間で調整しましたが、reqeustsが戻ってきたオブジェクトであることが分かりました。魔法の関数も含まれています。
こちらの業務はcdnのリフレッシュプリキャッシュです。このプロジェクトにとってhttp code 200、2 xx、404は友好的です。
>type(r)
>requests.modes.Resonse
requestsのソースコードを見ると、この問題を簡単に分析できます。
以上のpython requests reponse値の判断方法は小编で皆さんに提供した内容の全てです。参考にしていただければと思います。どうぞよろしくお愿いします。
今回はreqeustsの戻り値に問題がありました。短い時間で調整しましたが、reqeustsが戻ってきたオブジェクトであることが分かりました。魔法の関数も含まれています。
こちらの業務はcdnのリフレッシュプリキャッシュです。このプロジェクトにとってhttp code 200、2 xx、404は友好的です。
#jb51.net
import requests
r = None
try:
r = requests.get("https://jb51.net")
except:
pass
if r:
print "ok"
なぜ出力okがないですか?常識的には、rがゼロでない限り、Trueにマッチすることができますが、今回のリターンは<Resonse 404>であり、なぜ404はif判定異常を引き起こしますか?>type(r)
>requests.modes.Resonse
requestsのソースコードを見ると、この問題を簡単に分析できます。
#jb51.net
class Response(object):
"""The :class:`Response <Response>` object, which contains a
server's response to an HTTP request.
"""
__attrs__ = [
'_content', 'status_code', 'headers', 'url', 'history',
'encoding', 'reason', 'cookies', 'elapsed', 'request'
]
def __init__(self):
super(Response, self).__init__()
self._content = False
self._content_consumed = False
#: Integer Code of responded HTTP Status, e.g. 404 or 200.
self.status_code = None
def __repr__(self):
return '<Response [%s]>' % (self.status_code)
def __bool__(self):
return self.ok
@property
def ok(self):
try:
self.raise_for_status()
except HTTPError:
return False
return True
def raise_for_status(self):
¦ """Raises stored :class:`HTTPError`, if one occurred."""
¦ http_error_msg = ''
¦ if 400 <= self.status_code < 500:
¦ ¦ http_error_msg = '%s Client Error: %s for url: %s' % (self.status_code, self.reason, self.url)
¦ elif 500 <= self.status_code < 600:
¦ ¦ http_error_msg = '%s Server Error: %s for url: %s' % (self.status_code, self.reason, self.url)
¦ if http_error_msg:
¦ ¦ raise HTTPError(http_error_msg, response=self)
END.以上のpython requests reponse値の判断方法は小编で皆さんに提供した内容の全てです。参考にしていただければと思います。どうぞよろしくお愿いします。