我目前正在創建一個python套接字http服務器,並且正在處理我的GET和POST請求。我的GET實現工作正常,但POST請求的body元素不會顯示出來。 代碼片段:http POST消息正文沒有收到
self.host = ''
self.port = 8080
self.listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.listener.bind((self.host, self.port))
self.listener.listen(1)
while True:
client_connection, client_address = self.listener.accept()
request = client_connection.recv(2048)
print request
此代碼產生的HTTP報頭處理從網頁發佈請求後:
POST /test.txt HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
Origin: http://localhost:8080
Content-Length: 21
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
Referer: http://localhost:8080/
Accept-Language: nb-no
Accept-Encoding: gzip, deflate
但是沒有身體,所以,問題是爲什麼我沒有接收到HTTP身體,當我知道它被髮送?
謝謝!
問題是:爲什麼不顯示客戶端代碼,最初構建POST的地方? –
hi @MarcB該項目用於類的分配,並且客戶端已經實現。我只是爲了實現服務器端來處理GET和POST請求。所以我假設它的服務器端出現錯誤 – mmoe
有什麼錯誤?服務器只是吐出它收到的東西。如果它沒有收到帖子正文,也許你應該檢查客戶端是否確實工作正常。 –