【问题标题】:httplib POST to REST server is not working correctly (characters of body are missing)httplib POST 到 REST 服务器无法正常工作(缺少正文字符)
【发布时间】:2016-01-05 18:54:45
【问题描述】:

我偶然发现了一个奇怪的情况,即通过使用 httplib 作为我的 http 客户端到 REST 服务器(不是由我实现但功能齐全)正在切断 http 请求正文末尾的字符。特别是我试图发送一条我确定的 JSON 消息,因为我打印它是正确的(我已经验证了它)但是当从服务器接收到它时它最后缺少 2 个字符,因此服务器 JSON 解析失败。

这真的很奇怪,因为当通过 curl 和 java httpconnection 发送消息时消息是正确的,但是对于 python httplib 我只有在具有 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 个字符

【问题讨论】:

  • 我无法复制这个。您能否编辑您的问题以显示您在msg 和任何headers 中发送的JSON?
  • @ChrisNauroth 通过移动具有几乎相同功能的 httplib2 解决了我的问题......我不明白这个问题,因为我没有改变关于我发送的 json 的任何内容......我不想公开我的 json正在发送...无论如何感谢您的尝试!
  • 很高兴听到您找到了解决方案。 :-)

标签: python json rest httplib


【解决方案1】:

现在最好使用 python-requests 模块,httplib 模块即将被弃用...

问候

【讨论】:

    猜你喜欢
    • 2015-10-27
    • 2012-01-20
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多