2016-01-05 34 views
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字

+1

我不能REPR這個。你可以編輯你的問題來顯示你發送的'msg'和任何'headers'的JSON嗎? –

+0

@ChrisNauroth通過移動具有幾乎相同功能的httplib2解決了我的問題......我不明白這個問題,因爲我沒有更改任何關於json即時通訊發送...我不想公開我發送的json ...無論如何謝謝嘗試它! – dtrihinas

+0

我很高興聽到您找到解決方案。 :-) –

回答

0

現在最好使用蟒蛇,請求模塊,httplib的模塊接近被淘汰......

問候

相關問題