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

Blue Prism Web API调用带body的GET接口报无法发送内容正文错误

问题根因

抛出Internal : Unexpected error Cannot send a content-body with this verb-type错误的核心原因,和Blue Prism Web API服务配置、HTTP Utility工具的逻辑无关:这两个内置功能底层依赖.NET Framework原生的HttpWebRequest类实现,该类默认严格遵循HTTP协议规范做了硬校验,直接拦截所有携带请求体的GET、HEAD类型请求,在请求发出前就抛出错误,和你怎么构造请求体内容、怎么配置内置模板没有关系。

可行解决方案

不要使用内置的Web API服务、HTTP Utility组件发起该请求,直接通过对象的代码阶段调用无该强制校验的HTTP客户端实现,步骤如下:

  1. 在你的业务对象中新增一个代码阶段,先添加程序集引用System.Net.Http,同时引入对应命名空间
  2. 在代码阶段配置好输入参数:接口地址apiUrl(文本类型)、请求体内容requestBody(文本类型)、请求体格式contentType(文本类型,比如传application/json);配置输出参数:响应状态码statusCode(数字类型)、响应内容responseContent(文本类型)
  3. 在代码阶段填入以下逻辑:
using (var httpClient = new HttpClient())
{
    var reqMessage = new HttpRequestMessage()
    {
        Method = HttpMethod.Get,
        RequestUri = new Uri(apiUrl),
        Content = new StringContent(requestBody, Encoding.UTF8, contentType)
    };
    // 如果接口需要携带鉴权头、自定义请求头,可直接操作reqMessage.Headers添加
    var resp = httpClient.SendAsync(reqMessage).Result;
    statusCode = (int)resp.StatusCode;
    responseContent = resp.Content.ReadAsStringAsync().Result;
}
  1. 直接运行该代码阶段即可正常发起携带请求体的GET请求,不会触发原有的verb-type报错。

如果你的Blue Prism运行环境是低于6.4的老版本,无法直接引用System.Net.Http,可以替换为在代码阶段调用PowerShell命令发起请求,核心是绕开HttpWebRequest的硬校验逻辑即可。

注意事项
  • 不要尝试修改内置Web API、HTTP Utility的配置项,这两个组件没有提供关闭GET请求体校验的开关,所有配置调整都无法绕过底层的硬拦截。
  • 如果调用HTTPS接口遇到证书校验错误,可在代码最开头添加ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };临时跳过校验,生产环境建议使用合法证书不要开启该配置。
  • 若接口有超时要求,可直接给httpClient.Timeout赋值设置对应超时时长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:18:34