我创建了一个从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
}
我只是想获取我从SOAP UI在HTTPRequestMessage对象下传递的参数值。但直到现在都没有成功。任何帮助表示赞赏。
答案 0 :(得分:0)
经历了某些文章和问题之后,我终于找到了解决方案:
var content = request.Content;
string jsonContent = content.ReadAsStringAsync().Result;
上面的代码运行完美