【问题标题】:How to get input parameters from HttpRequestMessage如何从 HttpRequestMessage 获取输入参数
【发布时间】:2018-12-24 21:20:04
【问题描述】:

我创建了一个继承自 DelegatingHandler 并覆盖 SendAsync 方法的类。在将请求参数传递给主控制器之前,我想验证请求参数并使用 AntiXss 类对其进行编码。因此,我创建了这个。现在,当我通过 SoapUI 调用相应的控制器时,我成功进入了 Async 方法并获取了请求对象。

难度 我无法从我从soap ui 传递的HTTPREQUESTMESSAGE 对象中获取请求参数。以下是请求的快照

代码

protected override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
        //Encode here the request object 
        var requestObj= request.GetQueryNameValuePairs()
                   .ToDictionary(kv => kv.Key, kv => kv.Value,
                        StringComparer.OrdinalIgnoreCase);
        // work on the request
        System.Diagnostics.Trace.WriteLine(request.RequestUri.ToString());

        return base.SendAsync(requestObj, cancellationToken)
         .ContinueWith(task =>
         {
           // work on the response
           var response = task.Result;
             response.Headers.Add("X-Dummy-Header", Guid.NewGuid().ToString());
             return response;
         });
    }

    #endregion
}

我只想获取从 HTTPRequestMessage 对象下的 SOAP UI 传递的参数值。但直到现在都没有成功。任何帮助表示赞赏。

【问题讨论】:

    标签: asp.net asp.net-mvc-4 asp.net-mvc-5 asp.net-web-api2 asp.net-web-api-routing


    【解决方案1】:

    在浏览了某些文章和问题后,我终于得到了解决方案:

    var content = request.Content;
            string jsonContent = content.ReadAsStringAsync().Result;
    

    以上代码完美运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多