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

Azure API连接器无法解析HTTP响应,代码返回组合是否正确?

问题分析与解决方案

核心问题原因

你的代码返回的是纯文本格式的响应内容,但Azure API Connector默认要求接收JSON格式的响应。虽然Postman能正常处理纯文本,但Azure的连接器会尝试将响应解析为JSON,纯文本不符合格式要求,因此抛出“无法解析HTTP响应”的错误。

另外,你的代码存在语法错误:else没有对应的if语句,这会导致编译失败——你提到Postman能正常工作,可能是粘贴时遗漏了判断逻辑,这也是需要修正的点。

代码修正方案

1. 补全语法逻辑

先补充缺失的if判断,确保代码可正常编译执行。

2. 返回JSON格式响应

将返回的文本内容包装为JSON对象,让Azure API Connector能正确解析。可以直接使用Json方法,或者给Content指定application/json媒体类型。

修正后的代码示例:

[Authorize]
[HttpPost, Route("REST_API_ENDPOINT_BEING_CALLED_BY_AZURE_API_CONNECTOR")]
public async Task<IHttpActionResult> SaveUserDetails([FromBody] SomeEntity entity)
{
    // 替换为你的实际保存逻辑判断
    bool saveSuccess = true;
    
    if (saveSuccess)
    {
        // 返回JSON格式的成功响应
        return Json(new { message = "Azure Account is linked" });
    }
    else
    {
        // NoContent规范要求不返回响应体,若需提示可改用BadRequest返回JSON
        return BadRequest(new { message = "Account could not link" });
        // 若坚持用NoContent,直接返回即可,不要附带内容
        // return StatusCode(HttpStatusCode.NoContent);
    }
}

额外说明

  • Task<IHttpActionResult>的返回类型本身是正确的,符合ASP.NET Web API的异步接口规范,问题出在响应内容的格式上。
  • HttpStatusCode.NoContent的标准规范是不携带任何响应体,因此如果需要返回错误提示,建议使用BadRequest(400)或其他合适的状态码,并搭配JSON格式的提示信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:47:12