我试图通过API发送数据,但我得到TypeError:无法将字节连接到str . 我理解这意味着我需要将部分代码转换为字节,但我不确定如何执行此操作 . 我尝试在前面添加b或使用字节('data'),但可能会将它们放在错误的区域 .
import http.client
conn = http.client.HTTPSConnection("exampleurl.com")
payload = {
'FilterId': "63G8Tg4LWfWjW84Qy0usld5i0f",
'name': "Test",
'description': "Test1",
'deadline': "2017-12-31",
'exclusionRuleName': "Exclude",
'disable': "true",
'type': "Type1"
}
headers = {
'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
'x-csrf-token': "wWjeFkMcbopci1TK2cibZ2hczI",
'cache-control': "no-cache",
'postman-token': "23c09c76-3b030-eea1-e16ffd48e9"
}
conn.request("POST", "/api/campaign/create", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
这是问题所在:
conn.request("POST", "/api/campaign/create", payload, headers)
我不确定什么以及如何转换为字节 .
1 回答
如果可以,请使用requests,这样更容易使用 .
否则,您需要urlencode将有效负载发布到服务器 . 您的有效负载的url编码版本如下所示:
这是一个工作示例:
http://httpbin.org返回此JSON响应:
请注意,我使用httpbin.org作为测试服务器,发布到https://httpbin.org/post .
此外,我已将Content-type标头更改为application / x-www-form-urlencoded,因为这是urlencode()返回的格式 .