Rozwiązuję problem z usługą, którą wywołuję za pośrednictwem HttpClient .NET, próbując przekierować żądanie przez lokalny serwer proxy (Fiddler), ale moje ustawienia proxy nie działają .Użycie proxy z .NET 4.5 HttpClient
Oto jak utworzyć klienta:
private HttpClient CreateHttpClient(CommandContext ctx, string sid) {
var cookies = new CookieContainer();
var handler = new HttpClientHandler {
CookieContainer = cookies,
UseCookies = true,
UseDefaultCredentials = false,
Proxy = new WebProxy("http://localhost:8888", false, new string[]{}),
UseProxy = true,
};
// snip out some irrelevant setting of authentication cookies
var client = new HttpClient(handler) {
BaseAddress = _prefServerBaseUrl,
};
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
return client;
}
potem wysłać wniosek przez:
var response = CreateHttpClient(ctx, sid).PostAsJsonAsync("api/prefs/", smp).Result;
Zapytanie idzie prosto do serwera nie próbując uderzyć proxy. Co mnie ominęło?
Czy Twoja usługa jest testowana na twoim lokalnym komputerze? Rozważ obejście proxy dla adresów lokalnych. – Xaqron
Nawiasem mówiąc, tworzenie instancji "HttpClient" jest kosztowne. Jeśli to możliwe, powinieneś ponownie użyć instancji. Jest kilka wpisów na blogu, które mówią o tym osiągalnym za pomocą Google. – NathanAldenSr