0
我偶然發現了一個奇怪的情況,通過使用httplib作爲我的http客戶端到REST服務器(不是由我實現,但功能完備)關閉http請求主體末尾的字符。特別是即時通訊嘗試發送一個JSON消息,我知道肯定,因爲即時通訊打印它的正確(我已驗證它),但從服務器收到它的末端丟失的2個字符,所以服務器JSON解析失敗。httplib POST到REST服務器無法正常工作(身上的字符丟失)
這真的很奇怪,因爲通過curl和java httpconnection發送的消息是正確的,但是與python httplib im只有具有JSON正文的POST有此問題(對於沒有正文或GET的POST沒有問題)。
我的功能代碼是非常簡單的,看起來像下面這樣:
def sendReq(endpoint, port, method, url, msg, headers)
client = httplib.HTTPConnection(endpoint, port)
client.set_debuglevel(1)
client.request(method, url, msg, headers)
resp = client.getresponse()
print resp.status, resp.reason
client.close()
注意:我使用python 2.7.x和消息發送即時消息大約是250-750字
我不能REPR這個。你可以編輯你的問題來顯示你發送的'msg'和任何'headers'的JSON嗎? –
@ChrisNauroth通過移動具有幾乎相同功能的httplib2解決了我的問題......我不明白這個問題,因爲我沒有更改任何關於json即時通訊發送...我不想公開我發送的json ...無論如何謝謝嘗試它! – dtrihinas
我很高興聽到您找到解決方案。 :-) –