2014-01-18 53 views
2

我使用這樣的發送請求:當狀態不是200時如何獲得身體?

from tornado import httpclient 
from tornado.httpclient import HTTPRequest 

client = httpclient.HTTPClient() 
request = HTTPRequest(url='http://google.com/', method="GET") 
res = client.fetch(request) 
print(res.body) 

工作正常時,HTTP狀態爲200,但我想總能得到身體。如何處理這個?

+0

E.g.我可能會得到401 - 未經授權的標題,但不知道實際原因。 Facebook API做這樣的事情,我必須檢查錯誤代碼來處理不同的情況。 –

回答

4

當它返回非200 HTTP狀態時會發生什麼?它是否會拋出異常? 這是根據these文檔發生的情況。真的嗎?在這種情況下,你想要做的是這樣的:

from tornado import httpclient 
from tornado.httpclient import HTTPRequest 

    client = httpclient.HTTPClient() 
    request = HTTPRequest(url='http://google.com/', method="GET") 
    try: 
     res = client.fetch(request) 
     print(res.body) 
    except HTTPError as err: 
     res = err.response 
     if res: 
      print(res.body) 
+0

我沒有意識到HTTPError中也有響應,謝謝。 –

+0

閱讀文檔是要走的路:) – ejbs

相關問題