Python脚本不发送请求参数

时间:2015-03-11 11:49:47

标签: python http post request httplib

我正在尝试向我的服务器发送POST请求。到达服务器。我可以通过服务器响应看到但是没有发送参数。 该请求需要JSON对象中的params。

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)

我检查了我的服务器功能,并且没有发送参数。

2 个答案:

答案 0 :(得分: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}

因此您的params已发送,但您无法在服务器功能中以正确的方式访问它们。

答案 1 :(得分:1)

未设置正确的标头

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