0

我一直在尝试找出一种在 Azure API 管理正文中发布 Content-Type application/x-www-form-urlencoded 的方法。

我已经设法让它在 Postman 中工作,因为它支持 x-www-form-urlencoded 但似乎无法在 API 管理中找到一种方法。无论我在何处以及如何尝试在 API 管理中发布正文,它都会出现错误:解析请求时出错。预期格式:{ token: string,enrollDevice: bool }。在邮递员中,我可以使用格式为 {"token":"xxx","enrollDevice":xxx} 的 x-www-form-urlencoded 将值放入 POST 正文中,它可以工作!

如何使用 Azure API 管理发布正文中所需的值?

如果您需要与该问题相关的更多信息,我很乐意提供更多信息。我在这里先向您的帮助表示感谢!:)

4

1 回答 1

0

我们可以添加一个策略来将标题设置为 name = “Content-Type” :

<set-header name="Content-Type" exists-action="override">
    <value>application/json</value>
</set-header>

在入站策略部分添加所有格式,基本上我们有入站、出站、后端和错误策略。检查 MS Docs 以设置 HTTP 标头。

<inbound>
    <base />
    <set-header name="Content-Type" exists-action="override">
        <value> application/x-www-form-urlencoded</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>

还要确保正文具有正确的内容。

于 2021-11-10T09:12:35.273 回答