gpt4 book ai didi

c# - Fiddler 看不到来自 C# HttpClient() 的 API 调用

转载 作者:太空狗 更新时间:2023-10-29 20:12:43 25 4
gpt4 key购买 nike

我有一个调用 Web API Web 服务的 ASP.NET MVC 网站。

调用正常并返回 200 OK - 在我的本地机器和 Web 服务器上都调用了 Web 服务。

我有 Fiddler 正在运行,但它没有看到这些调用 - 只调用了 MVC 网站(它又调用了网络服务)。

如何查看实际的网络服务调用?

这应该有效吧?特别是基于网络的网络服务。

我已经停止引用 http://localhost 并且正在使用 MACHINENAME 代替 - 正如一些 SO 帖子中所建议的那样。但这没有帮助。

我正在使用 HttpClient 来调用它:

using (var client = new HttpClient())
{
var byteArray = Encoding.ASCII.GetBytes(username + ":" + password);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

client.BaseAddress = new Uri("http://MACHINENAME");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var response = await client.PutAsJsonAsync("api/path", custImp);
}

如何在 Fiddler 中查看网络服务调用?

最佳答案

当您启动 Fiddler 时,它会更改当前 Windows 用户的默认系统代理,以便 Fiddler 捕获该用户发出的 Web 请求。

但是,该网站在 IIS 内部运行,并在不同的用户下运行。您必须通过在 MVC 应用程序的 web.config 文件中明确指定 Fiddler 作为网络代理来让您的网站使用 Fiddler(使用您的 Fiddler 使用的端口):

<configuration>
...
<system.net>
<defaultProxy>
<proxy proxyaddress="http://127.0.0.1:8888" />
</defaultProxy>
</system.net>
...
</configuration>

引用资料:


作为BornToCode提到,也可以将应用程序池标识更改为您当前的用户。

关于c# - Fiddler 看不到来自 C# HttpClient() 的 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42957977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com