Nie*_*nch 7 .net-core .net-6.0 visual-studio-2022
在运行 .NET 6(Azure 函数)的 C# 代码中,我发送一个HttpRequestMessageusing HttpClient. 它不起作用,但它应该起作用,所以我想获取我发送的原始请求,包括标头,这样我就可以与文档进行比较并查看差异。
过去我使用过 Fiddler,但现在它对我不起作用,可能是因为我的笔记本电脑上的一些安全设置。因此,我正在 Visual Studio 2022 或 .NET 6 的世界中寻找解决方案,在其中我可以获取原始请求以进行故障排除。
这个问题实际上与代码无关,但无论如何这是我的代码。
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://myendpoint.com/rest/something");
var apiToken = "AOU9FrasdgasdfagtHJNV";
request.Headers.Add("Authorization", "Basic " + apiToken);
var message = new
{
sender = "Hey",
message = "Hello world",
recipients = new[] { new { id = 12345678} }
};
request.Content = new StringContent(JsonSerializer.Serialize(message), Encoding.UTF8, "application/json");
request.Headers.Add("Accept", "application/json, text/javascript");
HttpResponseMessage response = await httpClient.SendAsync(request);
Run Code Online (Sandbox Code Playgroud)
当SendAsync调用时,我希望知道到底发送了什么,包括标头和内容。
小智 4
如果您无法使用任何代理解决方案(如 Fiddler),那么我可以看到 2 个选项。一种在您的问题的评论中描述了要使用的DelegatingHandler。您可以在文档中阅读有关此内容的更多信息。有趣的是,HttpClient支持开箱即用,如本节https://learn.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-6.0#logging中所述文章描述了DelegatingHandlers
如果您担心某些东西会操纵传出请求,那么您可以实施选项 2。这是创建临时 ASP.NET Core 应用程序,并将.UseHttpLogging()中间件插入管道,如此处所述https://learn.microsoft.com/en-us /aspnet/core/fundamentals/http-logging/?view=aspnetcore-6.0这样您就可以从正在请求的应用程序的角度确切地知道您的请求是什么样的。现在,如果您将 Azure 函数指向临时应用程序 - 您应该看到发送的内容
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
7594 次 |
| 最近记录: |