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

Python中如何以纯文本变量形式发送POST请求调用REST API

如何用Python发送纯文本taskId的POST请求?

我是Python/REST API新手,有一个在第三方沙箱中运行正常的POST请求,希望通过Python实现该请求以完成批量运行taskId、输出前后结果等个性化操作。目前遇到的问题是:需要将纯文本格式的taskId(如125918)作为变量传入POST请求,但尝试多种写法都无法复现沙箱中的请求效果(沙箱示例中taskId为451)。

已尝试的代码及报错

  1. 以下代码报错:file "string", line unknown parseError: no element found: line 1, column 0
taskId = 0
task = {taskId : 125918}
r2 = requests.post(DisableSchedule, data = task, headers=headers)
  1. 还尝试过:
r2 = requests.post(DisableSchedule, files = dict(taskId = 125918), headers=headers)
  1. 最初的写法:
taskId = 0
task = {(taskId, 'text/plain') : 125918}
r2 = requests.post(DisableSchedule, data = task, headers=headers)

解决方案

直接将纯文本格式的taskId作为请求体发送,同时设置正确的请求头,代码示例如下:

import requests

# 预定义taskId变量
task_id = 125918
# 转换为纯文本字符串作为请求体
payload = str(task_id)
# 配置请求头,确保Content-Type为text/plain(如果已有其他头,直接添加该字段即可)
headers = {
    'Content-Type': 'text/plain',
    # 这里可以添加其他必要的请求头,比如认证token等
}

# 发送POST请求
response = requests.post(DisableSchedule, data=payload, headers=headers)

# 输出响应结果,便于调试
print(response.status_code)
print(response.text)

核心要点

  • 沙箱中的请求是将taskId作为纯文本请求体直接发送,而非表单数据或文件格式。之前的错误在于将taskId包装成字典,导致requests默认使用application/x-www-form-urlencoded格式发送,与沙箱请求格式不匹配。
  • 必须设置Content-Type: text/plain请求头,明确告知服务器请求体的格式,保证和沙箱请求一致。
  • 如果你的原有headers中已经包含认证、其他标识等字段,只需在其中添加Content-Type字段即可,无需替换整个headers字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:50:44