Aby ponownie wykorzystać otwarte połączenia TCP za pomocą HttpClient
, należy udostępnić pojedynczą instancję dla wszystkich żądań.Ponowne używanie HttpClient, ale z innym ustawieniem limitu czasu na żądanie?
Oznacza to, że możemy nie może po prostu utworzyć HttpClient
z różnymi ustawieniami (np. Timeout lub nagłówki).
W jaki sposób możemy udostępnić połączenia i korzystać z różnych ustawień w tym samym czasie? Było to bardzo łatwe, w rzeczywistości domyślne, ze starszą infrastrukturą HttpWebRequest
i WebClient
.
Należy pamiętać, że po prostu ustawienie HttpClient.Timeout
przed wysłaniem żądania nie jest bezpieczne dla wątków i nie działałoby w aplikacji współbieżnej (np. W witrynie ASP.NET).
Jakie ustawienia szukasz zmieniać na tym samym przykład innym niż 'Timeout'? Rzeczy takie jak nagłówki są ustawiane na żądanie, a zmiana "BaseAddress" nie ma większego sensu, ponieważ każdy inny będzie wymagał nowego połączenia. Praktycznie rzecz biorąc, 'Timeout' może być właściwością _only_, którą chcesz zmienić w tym samym wystąpieniu. Mogę pokazać ci, jak używać innego limitu czasu na żądanie, jeśli to odpowiada na pytanie. –
@ToddMenier to dobry punkt. To by odpowiadało na pytanie, tak! – boot4life
Należy wyjaśnić, że ponowne użycie 'HttpClient' oznacza, że korzystasz z połączenia _single_ TCP. Nie ma tu miejsca na "łączenie się". –