我正在學習socket編程,並試圖設計一個我的基本http客戶端。但不知何故一切順利,但我沒有收到任何數據。你能告訴我我錯過了什麼嗎?套接字不接收數據。爲什麼?
CODE
import socket
def create_socket():
return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def remove_socket(sock):
sock.close()
del sock
sock = create_socket()
print "Connecting"
sock.connect(('en.wikipedia.org', 80))
print "Sending Request"
print sock.sendall ('''GET /wiki/List_of_HTTP_header_fields HTTP/1.1
Host: en.wikipedia.org
Connection: close
User-Agent: Web-sniffer/1.0.37 (+http://web-sniffer.net/)
Accept-Encoding: gzip
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
Cache-Control: no-cache
Accept-Language: de,en;q=0.7,en-us;q=0.3
Referer: d_r_G_o_s
''')
print "Receving Reponse"
while True:
content = sock.recv(1024)
if content:
print content
else:
break
print "Completed"
輸出
Connecting
Sending Request
298
Receving Reponse
Completed
雖然我期待它給我看維基百科的網頁的HTML內容:「(
而且,這將是巨大的如果有人可以分享一些網絡資源/書籍,我可以詳細閱讀有關Python socke的內容t編程爲HTTP請求客戶端
謝謝!
你的換行符是否正確換行(''\ r \ n'')?另外,在標題之後你應該有一個空行,這告訴服務器標題已經完成。 – 2012-04-10 07:10:18
不,它不是..我認爲\ n應該足夠,但它不..我知道了..謝謝:) – codersofthedark 2012-04-10 07:57:18