You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python requests发送POST请求调用CarsXE API并解决类型报错

问题解决方案

你遇到的TypeError: a bytes-like object is required, not 'str'报错,核心原因是请求体需要传入字节类型数据,你可以按以下步骤调整代码:

  • 优先使用字符串的encode()方法做字节转换,比手动加b前缀兼容性更强,适配动态生成图片地址的场景
  • 可以增加响应内容打印,方便排查接口返回的业务结果

调整后的完整代码如下:

import requests

api_key = 12345 # 替换为你实际的CarsXE API密钥
url = f'http://api.carsxe.com/whatcaristhat?key={api_key}'
# 字符串转字节,不用手动加b前缀
img_url = 'https://upload.wikimedia.org/wikipedia/commons/4/44/2019_Acura_RDX_A-Spec_front_red_4.2.18.jpg'
data = img_url.encode('utf-8')

headers = {'Content-Type' : 'text/plain'}
r = requests.post(url,
        data=data,  
        headers=headers)
print(r.status_code)
# 打印接口返回内容方便调试
print(r.text)

如果你之前写的代码已经给字符串加了b前缀还是报错,大概率是你实际运行的代码中data是动态生成的字符串变量,没有做字节转换,统一用encode()方法处理即可解决。


内容的提问来源于stack exchange,提问作者Bernardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:27:06