HTTP கோரிக்கை தொடர்ந்து நடைபெறும்போது நிறுவினைக் கடிகாரம் காத்திருப்பதை நிறுத்தலாம். ப்ராக்ஸி முயற்சிக்கு நிர்ணயிக்கப்பட்ட நேரப் பட்ஜெட் இருந்தால், ரத்தைச் செயலுக்கே வழங்குங்கள்.

ஏற்கனவே ப்ராக்ஸிக்கு அமைக்கப்பட்ட HttpClient உள்ள நவீன .NET பயன்பாட்டுக்கு:

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);

அதே பட்ஜெட் தயாரிப்புக்கு முன் தொடங்கி உடல் படிக்கும்போதும் செயலில் இருக்கும். ResponseHeadersRead தலைப்புகளுக்குப் பின் கட்டுப்பாட்டைத் திருப்பித் தருகிறது, எனவே HttpClient-இன் சொந்த நேர வரம்பு பிந்தைய உடல்-படிப்பு பட்ஜெட்டைத் தானே வரையறுக்காது.

ரத்தை HTTP நிலை மற்றும் போக்குவரத்து பிழைகளிலிருந்து தனியாக வையுங்கள். OperationCanceledException வழங்கப்பட்ட டோக்கனிலிருந்தோ மற்றொரு அமைக்கப்பட்ட நேர வரம்பிலிருந்தோ வரலாம்; ஒவ்வொரு தோல்வியையும் இறந்த ப்ராக்ஸி எனக் கூறாமல் பொருத்தமான ரத்து மூலத்தை ஆய்வு செய்யுங்கள்.

இந்தப் ப்ராக்ஸி வழியைச் சொந்தமாகக் கொண்ட கிளையண்டையே மீண்டும் பயன்படுத்துங்கள். ஒரு முயற்சியை ரத்து செய்வது ஒவ்வொரு அடுத்த கோரிக்கைக்கும் முழு இணைப்புக் குளத்தையும் மீண்டும் கட்ட வேண்டும் என்பதல்ல.

எடுத்துக்காட்டு வரம்புள்ள அளவுடைய பதில் உடலை இடையகப்படுத்துகிறது. ஸ்ட்ரீமிங் பதிவிறக்கத்தில் டோக்கனை ஸ்ட்ரீம் நகலெடுக்கும் சுழற்சி வழியாக அனுப்பி, ஒவ்வொரு வெளியேறும் பாதையிலும் பதிலை விடுவிக்க வேண்டும்.

ரத்து என்பது செயலின் கொள்கையை வெளிப்படுத்துகிறது, ஒவ்வொரு தளச் செயலுக்கும் துல்லியமான கடிகார உறுதிமொழி அல்ல. Task.IsCompleted மீது முடிவில்லாத விசாரணைச் சுழற்சியால் அதை மாற்ற வேண்டாம்.

தொடர்புடைய கட்டுரைகள்