httpclient, jak się do tego zabrać

0

Cześć,
robię prostą aplikacje (winforms) której głównym zadaniem będzie wysłanie dużych ilości zapytań do serwerów. Do tej pory jak potrzebowałem coś pobrać, to korzystałem z webclienta ewentualnie webrequest jak chciałem coś wysłać. Teraz chciałbym wykorzystać httpclient. Z tego co wyczytałem, to powinno się utworzyć jednego klienta, zamiast używać using. Z tym, że nie bardzo wiem jak do tego podejść. Czy dobrym rozwiązaniem będzie stworzenie instancji np w form1 i odwoływanie się do niej np. tak; method(httpclient client) (tutaj chodzi mi o metody w innych klasach)? I czy z HttpClientHandler, też należy tak postępować (tzn. tworzyć tylko jedną instancję) ? A jeśli tak, to jak wtedy obsłużyć proxy/cookies które dla każdego serwera będą inne? Tak jak pisałem, nie za bardzo wiem jak się za to zabrać i nie mam też dużego doświadczenia w 'requestach', także sorry jak piszę jakieś totalne pierdoły ;d

2

jezeli mozesz to uzyj.

https://github.com/aspnet/HttpClientFactory

jest to dobre rozwiazanie jezeli potrzebujesz klika httpclientow.

Nie jest problemem posiadanie kilku Httpclientow, ale problemem jest, ze HttpClient tworzy i otwiera socket. Przez co jak tworzysz nowe instacje to moze Ci zabraknac socketow. HttpClientFactory rozwiazuje ten problem

0

A jeśli to jakieś serwisy testowe, to użyj RestSharpa.

0
somekind napisał(a):

A jeśli to jakieś serwisy testowe, to użyj RestSharpa.

O, ten restsharp wydaje się super. A w nim też unikać tworzenia kilku klientów, czy nie występuje taki problem jak z;

fasadin napisał(a):

Nie jest problemem posiadanie kilku Httpclientow, ale problemem jest, ze HttpClient tworzy i otwiera socket. Przez co jak tworzysz nowe instacje to moze Ci zabraknac socketow. HttpClientFactory rozwiazuje ten problem

? Bo z tego co widzę, to nawet nie da się zamknąć tego połączenia, jak w przypadku httpclienta.

0

RestSharp zajmuje się połączeniami za Ciebie, Ty tylko tworzysz sobie RestClient tam gdzie chcesz i ile razy chcesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1