【发布时间】:2018-04-13 19:32:48
【问题描述】:
我正在尝试通过 API 发送数据,但收到 TypeError: can't concat bytes to str.我理解这意味着我需要将部分代码转换为字节,但我不确定如何执行此操作。我尝试在前面添加 b 或使用 bytes('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)
我不确定将什么以及如何转换为字节。
【问题讨论】:
-
为什么不改用
requests模块? -
我在尝试使用时收到“ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]”错误。认为这个问题可能比那更容易解决。
-
@nvachhan:exampleurl.com 的服务器没有有效的 SSL 证书。您可以仅使用 HTTP 进行测试,也可以尝试使用 httpbin.org,如我的回答所示。更好的是,按照建议使用
requests。 -
我将使用请求中使用的代码发布另一个问题
标签: python python-3.x http.client