【问题标题】:How to perform this python post request如何执行此 python 发布请求
【发布时间】:2021-10-26 14:01:43
【问题描述】:

我是 python 请求的新手,不知道如何使用 post 请求调用此 API。 这是我得到的信息:

POST /whatcaristhat?key=<CarsXE_API_Key> HTTP/1.1              
Host: http://api.carsxe.com             
Content-Type: text/plain             
https://upload.wikimedia.org/wikipedia/commons/4/44/2019_Acura_RDX_A-Spec_front_red_4.2.18.jpg

到目前为止我得到的是:

import requests

api_key = 12345
url = f'http://api.carsxe.com/whatcaristhat?key={api_key}'
data = b'https://upload.wikimedia.org/wikipedia/commons/4/44/2019_Acura_RDX_A-Spec_front_red_4.2.18.jpg'

headers = {'Content-Type' : 'text/plain'}
r = requests.post(url,
        data=data,  
        headers=headers)
print(r.status_code)

但我收到此错误: TypeError:需要一个类似字节的对象,而不是'str'

【问题讨论】:

  • 您可能不应该在 URL 中包含 &lt;&gt;
  • 或者,更好的是,跳过json.dumps 步骤并将data=data 更改为json=data
  • 我省略了 但现在我收到错误 500。我是否应该将 /whatcaristhat?key= 放在 url 中? json=data 对您来说意味着什么?

标签: python api python-requests request


【解决方案1】:

此 API 采用图像 URL 或 base64 编码图像。截至目前,data 被定义为一个集合。修复非常简单:

data = b'https://upload.wikimedia.org/whatevertheurlis.jpg'

【讨论】:

  • 感谢您的回答。现在我没有从 API 中得到任何答案(甚至没有状态码)。我能做什么?
  • @Bernardo 你能提供更多细节吗?仅当请求超时时才可能没有响应代码,这意味着问题出在 API 端。我没有自己检查的 API 密钥。
  • @Bernardo 请删除带有 API 密钥的评论。我会尽快跟进
  • 好的。谢谢!
  • @Bernardo 问题出在 API 端(我得到状态 500)。除了与他们的支持交谈之外,没有什么可以做的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多