Yi amfani da CancellationToken ɗaya don kanun .NET HttpClient da jikinsa
Ka wuce CancellationToken na buƙata ta hanyar saitin amsar HttpClient da karanta jiki, maimakon auna jiran mai kira kawai.
Agogon awo na iya daina jira yayin da buƙatar HTTP ke ci gaba. Ka ba da sokewa ga aikin da kansa idan ƙoƙarin ta hanyar proxy yana da kasafin da aka yi niyya.
Don aikace-aikacen .NET na zamani mai HttpClient da aka saita don proxy da yake da shi:
using var budget = new CancellationTokenSource(TimeSpan.FromSeconds(5));
using var response = await client.GetAsync(
targetUrl,
HttpCompletionOption.ResponseHeadersRead,
budget.Token);
response.EnsureSuccessStatusCode();
string body = await response.Content.ReadAsStringAsync(budget.Token);
Wannan kasafin yana farawa kafin saitin kuma yana aiki yayin da ake karanta jiki. ResponseHeadersRead yana mayar da iko bayan kanun, don haka lokacin ƙarshen HttpClient da kansa ba ya bayyana kasafin karanta jiki na gaba.
Ka raba sokewa da matsayin HTTP da kurakuran jigilar kaya. OperationCanceledException na iya fitowa daga token ɗin da aka bayar ko wani lokaci da aka saita; ka duba tushen sokewar da ya dace maimakon bayar da rahoton kowane gazawa a matsayin mataccen proxy.
Ka sake amfani da abokin ciniki wanda ya mallaki wannan hanyar proxy. Soke ƙoƙari ba lallai ba ne ya nuna sake gina dukan tafkin haɗi don kowace buƙata ta gaba.
Misalin yana ajiye iyakataccen jikin amsa. Zazzagewar yawo ya kamata ta wuce token ta hanyar madaukin kwafin rafi kuma ta saki amsar a kowace hanyar fita.
Sokewa yana bayyana manufofin aiki, ba tabbacin agogon bango na kowane aikin dandamali ba. Ka guji maye gurbinsa da madaukin tambaya marar iyaka akan Task.IsCompleted.