gpt4 book ai didi

Azure API 管理 - 如何将正文与我的请求一起发送

转载 作者:行者123 更新时间:2023-12-05 05:02:44 28 4
gpt4 key购买 nike

我有一个托管在 Azure 上的 API,并且我已开始使用 Azure API 管理。我的 API 端点之一是 GET,它需要将 JSON 形式的主体传递到端点。在我的 postman 上,我能够访问实际的 API(托管在 Azure 上)并发送正文,并且我能够得到一些结果。但是,当我尝试在 azure api 管理上访问 api 时,尽管我正在发送请求正文,但出现以下异常:

{
"errors": {
"": [
"A non-empty request body is required."
]
},
"type": "https://tools.ietf.org/html/rfcXXXX#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
}

我是否缺少 Azure Api 管理的某些配置?我确实查找了设定的政策,并在入站时使用了以下内容,但这仍然不起作用

<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body template="liquid">{{body.json}}"}</set-body>

任何有关如何解决此问题的见解将不胜感激。提前致谢。

最佳答案

我可以使用以下策略来设置 GET 请求正文。

<inbound>
<base />
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body template="liquid">{"QueryString": "123", "param1": "456"}</set-body>
<set-body>@{
JObject inBody = context.Request.Body.As<JObject>();
return inBody.ToString();
}</set-body>
</inbound>

当我测试它时,我可以看到它已经成功添加到body中。我也可以使用 context.Request.Body.As<JObject>() 来获取它。

enter image description here

我注意到您的正文是 {{body.json}}"} ,其格式似乎不正确。您应该使用 {{body.json}} 并确保 body.json 包含准确的内容。

关于Azure API 管理 - 如何将正文与我的请求一起发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62003235/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com