Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 1|Atbildi: 0

[Avots] .NET/C# izmanto Socket, lai sūtītu HTTP(s) pieprasījumus, balstoties uz Hypertext Transfer Protocol

[Kopēt saiti]
PublicētsPirms 44 sekundēm | | | |
Prasības: Katru dienu, atverot tīmekļa lapas vai lietotnes, informācija, ko pārlūkojat, gandrīz vienmēr tiek piekļūta, nosūtot HTTP vai HTTPS pieprasījuma atbildes. Izmantojot C#, kas balstīts uz Hypertext Transfer Protocol un vietējām ligzdām, lai nosūtītu HTTP pieprasījumus.

Nolīguma

Hiperteksta pārsūtīšanas protokols (HTTP) ir bezstāvokļa lietojumprogrammu slāņa protokols, ko izmanto izkliedētām, sadarbības hiperteksta informācijas sistēmām.

HTTP / 1.1 protokols (RFC 9112):Hipersaites pieteikšanās ir redzama.
HTTP Semantika (RFC 9110):Hipersaites pieteikšanās ir redzama.

Piemēra pieprasījums:
IEGŪSTI /hello.txt HTTP/1.1
User-Agent: curl/7.64.1
Host: Hipersaites pieteikšanās ir redzama.
Accept-Language: en, mi

Parauga atbilde:
HTTP/1.1 200 Labi
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

Sveika, pasaule! Manā saturā ir pievienots CRLF.

Socket sūta pieprasījumus

Avota kods ir šāds:
Avota kods atbalsta pieprasījumu sūtīšanu uz HTTP un HTTPS protokoliem. Kā redzams zemāk:



Savienojums: tuvs pret dzīvu saglabāšanu

Ja izmantojat ReadToEndAsync, lai nolasītu visus atbildes datus, jums jāiestata savienojums uz aizvērtu. Ja to iestatāt uz keep-alive, ReadToEndAsync atbilde iesaldēsies. Iemesli, kāpēc tas nav iesaldēts: Daudzi tīmekļa serveri (piemēram, Nginx, Apache vai daži API vārteji) aktīvi uzsāk FIN paketi, lai aizvērtu TCP savienojumu, ja klients ir dzimtā un var rakstīt ligzdu bez turpmākām darbībām, vai ja serveris aktivizē dīkstāves laika limitu (parasti iestatīts uz 5 sekundēm).

HTTP cauruļvads, kas vienlaikus sūta vairākus pieprasījumus:Hipersaites pieteikšanās ir redzama.

Transfer-Encoding: chunked 表示数据是以分块的形式传输的。每个数据块前面都有一个指示该块大小的十六进制数字,这个数字后面跟着一个换行符(CRLF),然后是实际的数据内容,再接着另一个换行符来结束这一块。这种编码方式允许服务器在不知道全部内容长度的情况下开始发送数据。

FDD8 ir tāds heksadecimāls skaitlis, kas norāda nākamā datu bloka (baitos) izmēru. Pārveidojot fdd8 no heksadecimālā uz decimāldaļu, iegūst 65 016 baitus. Tas nozīmē, ka tūlīt pēc fdd8 un CRLF ir 65 016 baiti datu. Pēc tam var būt vēl datu bloki, līdz tiek atrasts 0 izmēra bloks, kas norāda, ka pārraide ir pabeigta.

FDD8 uztvērējam norāda, ka nākamais datu bloks ir 65 016 baitu garš.




Iepriekšējo:HTTP(s) testa vietas kopsavilkums (nepārtraukti atjaunināts)
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com