[英]Too many redirects error using Python requests
HTTP請求在我的localhost上工作正常,但是在我的服務器上使用python請求庫運行相同的HTTP請求會返回“Too Many Redirects”錯誤
當我進入
localhost/terminal/jfk
在瀏覽器中,我按預期獲得了一個json字典。
但是,當我在我的服務器上使用python請求庫在python中運行以下內容時
requests.get('http://splitmyri.de/terminal/jfk')
我從請求模塊收到“Too Many Redirects”錯誤。
是否有任何關於導致錯誤的想法? 或建議縮小潛在原因?
阿莎,
在你回答這確實是你的網站后,我查看了為什么我得到一個空的GoDaddy.com頁面。 問題是你的splitmyri.de的DNS條目返回兩個不同的A記錄...
使用107.10.141.119分析結果 :
我的/etc/hosts
文件中的硬編碼107.10.141.119 splitmyri.de
允許我對107.10.141.119進行查詢,該查詢在index.html
返回“這是我的網站”(然后我檢查了http://splitmyri.de/terminal /並得到一個空的json哈希,mime類型= [application / json])。 檢查此地址的反向條目將返回Amazon AWS主機(我期望用於真實網頁的條目類型)。 現在您的代碼按預期工作了......
[mpenning@Bucksnort ~]$ python
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.get('http://splitmyri.de/terminal/')
<Response [200]>
>>> requests.get('http://splitmyri.de/terminal/').content
u'{}'
>>> # requests.get('http://splitmyri.de/terminal/jfk').content returns a huge json hash
使用68.178.232.100分析結果 :
對68.178.232.100的查詢執行相同的鑽取得到一個空的GoDaddy.com頁面。 反向映射此地址會顯示停放域的典型條目。 正如您在嘗試中看到的那樣,在此處發送請求會返回TooManyRedirects
[mpenning@Bucksnort ~]$ python
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> foo = requests.get('http://splitmyri.de/terminal/jfk')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.linux-i686/egg/requests/api.py", line 50, in get
File "build/bdist.linux-i686/egg/requests/api.py", line 37, in request
File "build/bdist.linux-i686/egg/requests/sessions.py", line 170, in request
File "build/bdist.linux-i686/egg/requests/models.py", line 383, in send
File "build/bdist.linux-i686/egg/requests/models.py", line 210, in _build_response
requests.exceptions.TooManyRedirects
>>>
解決方案
修復你的DNS for splitmyri.de(刪除68.178.232.100的A記錄),一切都會好的。
包括下面的DNS信息作為FYI ...
[mpenning@Bucksnort ~]$ dig splitmyri.de
; <<>> DiG 9.6-ESV-R4 <<>> splitmyri.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54051
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4
;; QUESTION SECTION:
;splitmyri.de. IN A
;; ANSWER SECTION:
splitmyri.de. 3193 IN A 68.178.232.100
splitmyri.de. 3193 IN A 107.20.141.119
;; AUTHORITY SECTION:
splitmyri.de. 3193 IN NS ns49.domaincontrol.com.
splitmyri.de. 3193 IN NS ns50.domaincontrol.com.
;; ADDITIONAL SECTION:
ns49.domaincontrol.com. 3193 IN A 216.69.185.25
ns49.domaincontrol.com. 3193 IN AAAA 2607:f208:206::19
ns50.domaincontrol.com. 3193 IN A 208.109.255.25
ns50.domaincontrol.com. 3193 IN AAAA 2607:f208:302::19
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Oct 26 05:14:51 2011
;; MSG SIZE rcvd: 205
[mpenning@Bucksnort ~]$
[mpenning@Bucksnort ~]$ dig -x 107.20.141.119
; <<>> DiG 9.6-ESV-R4 <<>> -x 107.20.141.119
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41049
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 6
;; QUESTION SECTION:
;119.141.20.107.in-addr.arpa. IN PTR
;; ANSWER SECTION:
119.141.20.107.in-addr.arpa. 300 IN PTR ec2-107-20-141-119.compute-1.amazonaws.com.
;; AUTHORITY SECTION:
141.20.107.in-addr.arpa. 900 IN NS pdns1.ultradns.net.
141.20.107.in-addr.arpa. 900 IN NS pdns2.ultradns.net.
141.20.107.in-addr.arpa. 900 IN NS pdns3.ultradns.org.
141.20.107.in-addr.arpa. 900 IN NS pdns5.ultradns.info.
141.20.107.in-addr.arpa. 900 IN NS pdns4.ultradns.org.
141.20.107.in-addr.arpa. 900 IN NS pdns6.ultradns.co.uk.
;; ADDITIONAL SECTION:
pdns1.ultradns.net. 86400 IN A 204.74.108.1
pdns1.ultradns.net. 86400 IN AAAA 2001:502:f3ff::1
pdns2.ultradns.net. 86400 IN A 204.74.109.1
pdns3.ultradns.org. 86400 IN A 199.7.68.1
pdns4.ultradns.org. 86400 IN A 199.7.69.1
pdns4.ultradns.org. 86400 IN AAAA 2001:502:4612::1
;; Query time: 306 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Oct 26 05:09:47 2011
;; MSG SIZE rcvd: 392
[mpenning@Bucksnort ~]$ dig -x 68.178.232.100
; <<>> DiG 9.6-ESV-R4 <<>> -x 68.178.232.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38578
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;100.232.178.68.in-addr.arpa. IN PTR
;; ANSWER SECTION:
100.232.178.68.in-addr.arpa. 3600 IN PTR parkwebwin-v01.prod.mesa1.secureserver.net.
;; AUTHORITY SECTION:
232.178.68.in-addr.arpa. 3600 IN NS cns1.secureserver.net.
232.178.68.in-addr.arpa. 3600 IN NS cns2.secureserver.net.
;; ADDITIONAL SECTION:
cns1.secureserver.net. 3600 IN A 208.109.255.100
cns2.secureserver.net. 3600 IN A 216.69.185.100
;; Query time: 173 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Oct 26 05:12:06 2011
;; MSG SIZE rcvd: 171
[mpenning@Bucksnort ~]$
如果您需要縮小問題范圍,最好使用wireshark
並分析不同的連接及其內容。 像這樣你會看到通過電線傳輸的是什么。 適合調試TCP相關問題。 此外,您可以使用pdb
Python模塊並調試您的程序。 在調用之前發出pdb.set_trace()
,然后單步執行該函數並查看它的作用。 有關pdb
更多信息可以在Python文檔中找到或按?
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.