簡體   English   中英

在python 3中正確使用httplib2? (超時問題)

[英]Using httplib2 in python 3 properly? (Timeout problems)

嘿,第一次發帖,我真的被困在httplib2上了。 我一直在從diveintopython3.org上閱讀它,但它沒有提到超時功能。 我查看文檔,但我唯一看到的是能夠設置超時int但沒有指定單位(秒?毫秒?如果沒有什么是默認值?)這就是我所擁有的(我也有代碼檢查)響應是什么,然后再試一次,但它從未嘗試過多次)

h = httplib2.Http('.cache', timeout=None)
for url in list:
    response, content = h.request(url)
    more stuff...

因此,Http對象會保持一段時間,直到某個任意時間,但是我從同一台服務器上下載了大量的頁面,過了一段時間,它會掛起來獲取頁面。 沒有錯誤被拋出,只是掛在頁面上。 那么我試試:

h = httplib2.Http('.cache', timeout=None)
for url in list:
    try:
        response, content = h.request(url)
    except:
        h = httplib2.Http('.cache', timeout=None)
    more stuff...

但是它每次都會重新創建另一個Http對象(沿着'except'路徑向下)...我不明白如何繼續使用相同的對象,直到它到期並且我再創建另一個對象。 另外,有沒有辦法在單個請求上設置超時?

謝謝您的幫助!

由於錯誤 httplib2測量超時以秒為單位乘以2 直到版本0.7.5 (2012-08-28)。

將超時設置為1,您很快就會知道它是否意味着一毫秒或一秒。

我不知道你的try / except應該解決什么,如果它掛在h.request(url)上,在一種情況下它應該掛在另一種情況下。

如果該代碼中的內存不足,則httplib2不會正確收集垃圾。 可能是您有循環引用(雖然它看起來不像上面)或者它可能是httlib2中的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM