See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3103|Vastuse: 0

[Allikas] .NET/C# HttpClient lähtekoodi lihtne analüüs

[Kopeeri link]
Postitatud 24.06.2023 13:05:41 | | | |
Nõuded: Mikroteenuste arhitektuurides kasutavad teenuste vahelised kõned sageli HTTP protokolli, tavaliselt kasutades HTTP päringute tegemiseks HttpClient klassi või sedaRefit.HttpClientFactory、WebApiClientCoreKolmanda osapoole teegid, mis põhinevad HttpClient kapseldamisel.

Lisateabe saamiseks HttpClienti kasutamise kohta palun vaata:Hüperlingi sisselogimine on nähtav.

HttpClient lähtekood:Hüperlingi sisselogimine on nähtav.

HttpClient parameetrivabas konstruktoris instantsieeritakse vaikimisi HttpClientHandler objekt ning HttpClientHandler pärib ja rakendab HttpMessageHandler abstraktklassi.Vaikimisi voog: HttpClient -> HttpClientHandler -> SocketsHttpHandler -> ...



Lähtekoodi analüüsi kohaselt on HttpMessageHandlerist päritud objekt konkreetne HttpClienti rakendus, mis saadab HTTP päringuid. HttpClientHttpRequestMessageObjekt antakse sisse ja võetakse vastuHttpResponseMessageObjekt tagastab sisu.

Proovi luua uus TestHttpHandler klass, pärida HttpMessageHandler abstraktsiooniklass ja rakendada SendAsync meetod ning seejärel instanseerida see HttpClient konstruktoris järgmise koodiga:

Nagu allpool näidatud:



Kuigi HttpClienti kutsutakse GET-päringu saatmiseks, ei saada SendAsync meetodi konkreetne rakendus HTTP-päringut ning võrguvoogu ei ole, seegaSa võid võrgukaabli lahti ühendada ja programm töötab normaalselt

juuresHttpClient objekti kasutamisel ei vabastata aluseks olevat soklit kohe, mis võib põhjustada pistikupesa tühjenemise probleeme. Microsoft on sellest probleemist teadlik ja soovitab kasutada IHttpClientFactory ASP.NET Core projektides HttpClient objektide loomiseks.IHttpClientFactory koondab tehases loodud HttpMessageHandler instantsid basseini, et vähendada ressursikasutust. Kui loote uue HttpClient instantsi, võite kasutada HttpMessageHandler instantsi basseinis uuesti(kui ellujäämisaeg pole veel lõppenud).

ASP.NET Core (XV) kasutab HTTP-päringute saatmiseks HttpClientit
https://www.itsvse.com/thread-10311-1-1.html

IHttpClientFactory .NET jaoks:Hüperlingi sisselogimine on nähtav.

ASP.NET Core'il on pipeline middleware'i kontseptsioon,Tegelikult on HttpClientil ka pipeline middleware'i kontseptsioon Delegating Handleri abil, nagu alloleval joonisel näidatud:



Selle funktsiooni abil saame kinni püüda päringuid ja vastuseid, näiteks suurendada tokeni autentimist enne päringuid, salvestada taotluste ja vastuste jaoks vajalik aeg ning pakkida vastuseandmeid.

Lihtsalt päri DelegatingHandler klass ja üle kirjuta SendAsync meetod.



HTTP-päringute salvestamine võtab aega ja kood on järgmine:

Helistage IHttpClientFactory'le, et luua HttpClient ja saata päring, nagu näidatud järgmisel pildil:



(Lõpp)




Eelmine:ajax-hook veebiarenduseks püüab kinni kõik XMLHttpRequest päringud
Järgmine:.NET/C# meetodi parameeter NULL null
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com