[英]How to check request body is null in azure api management policies expression?
我嘗試像這樣檢查請求正文。
<set-variable name="isBody" value="@{
bool rtn_result = false;
if (context.Request.Body == null)
{
rtn_result = true;
}
return rtn_result;
}" />
但是 'rtn_result' 總是返回false
我按照文件做了,他們告訴我
“context.Request Body:如果請求沒有正文,則為 IMessageBody 或 null。”
我錯了什么?
什么是正確的事情?
我應該怎么辦?
謝謝。
你的if
條件沒有意義。
如果沒有正文,它返回true
。
請將其更改為:
if (context.Request.Body != null)
{
rtn_result = true;
}
完整的政策:
<policies>
<inbound>
<base />
<set-variable name="isBody" value="@{
bool rtn_result = false;
if (context.Request.Body != null)
{
rtn_result = true;
}
return rtn_result;
}" />
<return-response>
<set-status code="200" reason="OK" />
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
var response = new JObject();
response["hasBody"] = context.Variables.GetValueOrDefault<bool>("isBody");
return response.ToString();
}</set-body>
</return-response>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.