我正在尝试向我的服务器发送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)
我检查了我的服务器功能,并且没有发送参数。
答案 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 }