【问题标题】:Python script not sending request paramsPython脚本不发送请求参数
【发布时间】:2015-03-11 21:02:27
【问题描述】:

我正在尝试向我的服务器发送 POST 请求。到达服务器。我可以通过服务器响应看到这一点,但未发送参数。 请求需要 JSON 对象中的参数。

params = "{'spam': 1, 'eggs': 2, 'bacon': 0}"

c = httplib.HTTPConnection(host)
userAndPass = b64encode(b"username:password").decode("ascii")
headers = {'Authorization' : 'Basic %s' %  userAndPass }

c.request('POST',url, params, headers=headers)
res = c.getresponse()
data = res.read()  

print(data)

我检查了我的服务器功能,但参数没有发送到那里。

【问题讨论】:

    标签: python http post request httplib


    【解决方案1】:

    您没有正确访问服务器函数中的参数。

    要简单地查看发送到服务器的消息,您只需在终端中使用 nc 命令运行一个简单的服务器:

    nc -l -p 1234
    

    然后执行您的代码并向 localhost:1234 发送请求,您可以看到此消息已发送:

    POST / HTTP/1.1
    Host: localhost:1234
    Accept-Encoding: identity
    Content-Length: 34
    Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
    
    {'spam': 1, 'eggs': 2, 'bacon': 0}
    

    因此您的参数已发送,但您没有在服务器功能中以正确的方式访问它们。

    【讨论】:

      【解决方案2】:

      没有设置正确的标题

      headers = {'Content-Type':'application/json', 'Authorization' : 'Basic %s' %  userAndPass }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-04
        • 1970-01-01
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        相关资源
        最近更新 更多