我试图通过API发送数据,但得到了类型错误:无法将字节转换为str。我理解这意味着我需要将部分代码转换为字节,但我不确定如何执行。我尝试在前面添加b或使用字节(“数据”),但可能将它们放在了错误的区域。
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)
我不确定什么和如何转换为字节。
如果可以,请使用请求
,这样更容易使用。
否则,您需要urlencode
将有效负载发布到服务器。有效负载的url编码版本如下所示:
description=Test1&exclusionRuleName=Exclude&FilterId=63G8Tg4LWfWjW84Qy0usld5i0f&deadline=2017-12-31&type=Type1&name=Test&disable=true
下面是一个工作示例:
import http.client
from urllib.parse import urlencode
conn = http.client.HTTPSConnection("httpbin.org")
payload = {
'FilterId': "63G8Tg4LWfWjW84Qy0usld5i0f",
'name': "Test",
'description': "Test1",
'deadline': "2017-12-31",
'exclusionRuleName': "Exclude",
'disable': "true",
'type': "Type1"
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'x-csrf-token': "wWjeFkMcbopci1TK2cibZ2hczI",
'cache-control': "no-cache",
'postman-token': "23c09c76-3b030-eea1-e16ffd48e9"
}
conn.request("POST", "/post", urlencode(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
http://httpbin.org 返回此JSON响应:
{ "args": {}, "data": "", "files": {}, "form": { "FilterId": "63G8Tg4LWfWjW84Qy0usld5i0f", "deadline": "2017-12-31", "description": "Test1", "disable": "true", "exclusionRuleName": "Exclude", "name": "Test", "type": "Type1" }, "headers": { "Accept-Encoding": "identity", "Cache-Control": "no-cache", "Connection": "close", "Content-Length": "133", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "Postman-Token": "23c09c76-3b030-eea1-e16ffd48e9", "X-Csrf-Token": "wWjeFkMcbopci1TK2cibZ2hczI" }, "json": null, "origin": "220.233.14.203", "url": "https://httpbin.org/post" }
注意,我使用httpbin.org作为测试服务器,发布到https://httpbin.org/post.
此外,我已将Content-type标头更改为Application/x-wow-form-urlencoded,因为这是urlencode()返回的格式。
问题内容: 我正在学习pythonthehardway中进行练习41,并不断收到错误: 我使用的是python3,而书籍使用的是python2,因此我进行了一些更改。这是脚本: 我到底在做什么错?谢谢! 问题答案: 返回一个bytes对象,要对其执行字符串操作,应将其转换为first。
我遇到了将字节字符串转换为字节数组的强制转换问题。 我有一个字符串[B@1a758cb。也就是Base64加密的String的主String"Gunjan"。这里的解密我想把加密的字节串转换成字节[]。 但是String.get字节[]不适合我。String.getBytes[]给出字节String的字节数。 我该怎么做??我是否必须迭代字节字符串中的每个字符并将其转换为字节[]?? 编辑 我使用
我想将字节转换为JsonObject。我试着这样: 但我遇到编译器错误: 我怎么能这样呢?
问题内容: 我使用以下代码将密钥转换为字节 现在如何从中获取密钥?我试过了: 我收到以下错误: 问题答案: 这应该工作
我在尝试使用nokogiri运行rake任务时遇到这个错误。 编辑:顶部表架构
问题内容: 调用Simple 会产生字节,但是exel会抛出警告。 遗失文件资料 仔细搜索一下,给了我这个链接,并查看了工作表的Javadocs和POI HOW-TO的类似说法。基本上,我不能不丢失一些信息,而应该使用该方法。 虽然写入确实可以正常工作,但我确实需要将字节发送过来。有什么办法可以做到吗?那就是得到字节而没有任何警告。 问题答案: 正如邮件列表中所说的 调用不会返回重建一个完整的Ex