我在MVC应用程序中的一些c#代码中使用它。
var request = client.PutAsJsonAsync(path, myobj).
它工作正常 - 但我如何窥探发送到Web服务器的JSON(在路径上)?
有没有办法用调试器执行此操作 - 或者输出正在发送回MVC应用程序的JSON? THX。
答案 0 :(得分:1)
你可以
第一个选项 - 代理。看看Fiddler。它显示请求/响应数据,并允许查看https数据。正如@Balazs指出的那样,你可以和Fiddler一起撰写,捕捉,编辑和发送请求。
第二个选项--API测试工具。它们很多(SoapUI,RESTClient等),但我建议你看看Postman。它允许通过测试手动和自动触摸您的API。
最后一个选项取决于您。例如。您可以创建OWIN Middleware,它将记录请求和/或响应。
更新:好像你想在客户端而不是服务器端记录请求。因此,您可以创建自定义消息处理程序而不是OWIN Middleware:
public class LoggingHandler : HttpClientHandler
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
// log request or its part here
Logger.Trace(request.ToString());
return base.SendAsync(request, cancellationToken);
}
}
并将其传递给HttpClient
:
var client = new HttpClient(new LoggingHandler());
client.DefaultRequestHeaders.Add("Accept", "application/xml");
var response = await client.GetStringAsync("http://localhost:12345/api/blah");
答案 1 :(得分:0)
创建一个扩展DelegatingHandler
的类然后......
<xsl:value-of select="../node()"/>
....然后在Global.asax中,注册处理程序: GlobalConfiguration.Configuration.MessageHandlers.Add(New YourClassNameHandler)