0
发出的请求我正在使用<send-request>
策略发出请求,并且需要检查请求的状态代码。为此,我试图访问response-variable-name
的StatusCode属性。但是,使用该代码时 -访问状态代码或使用<发送请求>
context.Variables["LogFailedEvent"].StatusCode
我看到这个错误 -
错误元件'设置身体上线83,第4栏:“对象”不包含定义关于“的StatusCode”和没有扩展方法“的StatusCode”接受类型“对象”的第一个参数可以发现
按照docs -
response-variable-name
属性用于访问返回的响应。此属性中定义的名称可用作context.Variables
字典中的键,以访问IResponse
对象。
要么我误解了文档中的内容,要么文档错误。有人能够提出解决方案吗?
从政策有关章节
<choose>
<when condition="@(context.Response.StatusCode != 201 && context.Response.StatusCode != 202)">
<send-request mode="new" response-variable-name="LogFailedEvent" timeout="20" ignore-error="true">
<set-url>@(string.Format("{0}{1}?code={2}&statusCode={3}&statusReason={4}&message={5}", "{{BVT_LogEventsFailedFunction_Url}}", "{{BVT_LogEventsFailedFunction_Template}}", "{{BVT_LogEventsFailedFunction_Code}}", context.Response.StatusCode, context.Response.StatusReason, context.Response.Body.As<string>()))</set-url>
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@(context.Request.Body.As<string>())</set-body>
</send-request>
<set-body>@(string.Format("{{\"message\":\"event captured by LogFailedEvents\",\"requestId\":\"{0}\",\"statusCode\":\"{1}\",}}", context.RequestId.ToString(), context.Variables["LogFailedEvent"].StatusCode))</set-body>
</when>
</choose>
谢谢,这是工作。 –