[英]Why is the html file of the http-response in this code incomplete?
[英]python says http-response code is 200, but server says 301
我正在使用python 3的urllib.request.urlopen()函數。 在過去,它運行良好。 實際上,幾個月前,我將其用於同一程序,並且運行良好。 但是現在,每當我嘗試使用api在我的網站上發布時,服務器都會記錄301響應。 當我使用response.getcode()查找響應時,它說是200。
是什么導致這種差異? 還有另一種方法可以檢查我的請求是否失敗,還是可以對其進行調試? 我個人沒有訪問服務器的權限,但是我可以請管理員為我檢查它們。
多謝你們!
我在wireshark中找到了HTTP請求。 它發送POST請求,獲取301(text / html),然后發送GET請求,獲取200(application / json)。 這是什么意思? 我最初的請求是json(我使用urllib.request.urlopen(url,data))。 POST對http://sefaria.org/api/texts/Rashi_on_Berakhot.2a.1.1的第一個響應是:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>301 Moved Permanently</title>
</head>
<body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.sefaria.org/api/texts/Rashi_on_Berakhot.2a.1.1">here</a>.</p>\n
<hr>
<address>Apache/2.4.6 (Ubuntu) Server at sefaria.org Port 80</address>
</body>
</html>
該URL的GET請求響應為200
原來我是在發布到http://website.com而不是http://www.website.com ...糟糕。
遇到301時,這不是預期的行為:
如果接收到響應GET或HEAD以外的請求的301狀態代碼,則用戶代理不得自動重定向該請求,除非用戶可以確認,因為這可能會更改發出該請求的條件。
( http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html )
您應該考慮將此報告為錯誤,告知Python開發人員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.