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

Roku Brightscript中POST请求请求体发送失败求助

BrightScript 发送带请求体的 POST 请求问题解决

原代码问题分析

你的代码存在几个关键问题导致请求体无法正常发送:

  1. 错误且重复调用 PostFromString:第一次传入的是字面量字符串 "queryString" 而非变量,且调用时机过早
  2. 请求格式不匹配:设置了 Content-Type: application/json,但构造的请求体是表单格式的键值对,服务端无法解析
  3. 方法调用顺序混乱:应先完成 URL、证书、请求头的配置,再设置请求体,最后发起请求

正确代码示例

以下分两种常见请求体格式给出可行代码:

1. JSON 格式请求体

如果接口要求接收 JSON 格式的请求体:

xfer = CreateObject("roURLTransfer")
# 设置目标接口地址(URL 参数可直接拼接在这里,如需要)
xfer.SetURL("https://d5c8-115-186-189-0.ap.ngrok.io/hello")

# 配置请求方法为 POST
xfer.SetRequest("POST")

# 配置 HTTPS 证书(必须步骤)
xfer.SetCertificatesFile("common:/certs/ca-bundle.crt")
xfer.InitClientCertificates()

# 设置请求头,指定 JSON 格式
xfer.AddHeader("Content-Type", "application/json")
xfer.AddHeader("Test-Header", "Test Header Value")

# 构造 JSON 结构的请求体
requestBody = {
    "title": "hello",
    "name": "world"
}
# 转换为 JSON 字符串
jsonBody = FormatJson(requestBody)

# 设置请求体,仅需调用一次
xfer.PostFromString(jsonBody)

# 发起请求并获取响应
rsp = xfer.GetToString()
print "Rsp: " rsp

# 解析响应(如果响应是 JSON 格式)
if rsp <> "" then
    json = ParseJson(rsp)
    print "json: " json
end if

2. 表单格式请求体

如果接口要求接收 application/x-www-form-urlencoded 格式的请求体:

xfer = CreateObject("roURLTransfer")
xfer.SetURL("https://d5c8-115-186-189-0.ap.ngrok.io/hello")

xfer.SetRequest("POST")
xfer.SetCertificatesFile("common:/certs/ca-bundle.crt")
xfer.InitClientCertificates()

# 设置表单格式对应的 Content-Type
xfer.AddHeader("Content-Type", "application/x-www-form-urlencoded")
xfer.AddHeader("Test-Header", "Test Header Value")

# 构造表单请求体,对参数值进行转义处理
title = xfer.Escape("hello")
name = xfer.Escape("world")
formBody = "title=" + title + "&name=" + name

xfer.PostFromString(formBody)

rsp = xfer.GetToString()
print "Rsp: " rsp

if rsp <> "" then
    json = ParseJson(rsp)
    print "json: " json
end if

关键注意事项

  • PostFromString 必须在完成所有请求配置(URL、头、证书)后调用,且仅调用一次
  • 请求体格式必须与 Content-Type 请求头完全匹配,否则服务端无法正确解析
  • HTTPS 请求必须配置证书文件,否则会出现连接失败
  • URL 路径后的查询参数(如 ?title=hello)与请求体是独立的,可以同时存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:22:54