请求POST中的URL编码字符串



我确信这真的很平庸和愚蠢,但我一辈子都想不出来。

我正在使用Alchemy API,其中使用请求的POST请求看起来像

r = requests.post(url, payload, headers=headers)

其中有效载荷是一个dict,该dict具有类似text=this%20is%text 的url编码文本的字段

我遇到的愚蠢问题是,如果我使用urlib进行像myText = urlencode({'text': textToEncode}) 这样的编码

然后我不能将其插入payload={'text': myText}的有效载荷中,因为这样我可能会得到类似text=text=this%20is%text 的东西

如果我可以对字符串本身进行编码,这会简单得多。encoding函数添加了一些我无法在dict中插入的内容,因为整个dict都被编码了。

我是不是错过了一些极其简单和愚蠢的东西?

尝试包含Content-type标头,例如application/json,然后使用data=json.dumps(payload)

import json
headers['Content-type'] = 'application/json'
r = requests.post(url, data=json.dumps(payload), headers=headers)

相关内容

  • 没有找到相关文章

最新更新