0
我有一個Python3的問題。Python3和http.client的問題
我想獲取http狀態代碼,例如從服務器讀取文件路徑並鍵入url的「200 OK」。
它與一些服務器但與其他那些我有以下問題:
Traceback (most recent call last):
File "simple_program.py", line 55, in <module>
main()
File "simple_program.py", line 52, in main
parser(url)
File "simple_program.py", line 27, in parser
r1 = conn.getresponse()
File "/usr/lib/python3.3/http/client.py", line 1143, in getresponse
response.begin()
File "/usr/lib/python3.3/http/client.py", line 354, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.3/http/client.py", line 336, in _read_status
raise BadStatusLine(line)
http.client.BadStatusLine: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
這是一個失敗的代碼的一部分。
conn = http.client.HTTPConnection(url)
conn.request("GET", path)
r1 = conn.getresponse()
conn.close()
print(url_path, r1.status, r1.reason)
print("\n")
你能幫我嗎?
謝謝!
試着用'curl -v'代替。另外,您可以轉儲您的請求發送的標題嗎? – aspyct
感謝您的回覆。 當我執行'捲曲-I'與'捲曲-v'命令一個獲得相同的... HTTP/1.1 200 OK 但我的計劃,我得到 http.client.BadStatusLine:< !DOCTYPE HTML PUBLIC「 - // IETF // DTD HTML 2.0 // EN」> 如果我在python2中創建代碼,我沒有問題... – user3018205
這導致我的評論的其他部分:你能指出你的請求標頭?或者,甚至可以提供具有此行爲的服務器的地址? – aspyct