የ.NET HttpClient ጥያቄዎችን በproxy ይላኩ
በHttpClientHandler ላይ WebProxy ያዘጋጁ፤ የproxy መንገድ እንዳይጠፋ ወይም ከተሳሳተ client ጋር እንዳይያያዝ ያረጋግጡ።
ጥያቄው በproxy handlerዎ የተገነባውን HttpClient መጠቀም አለበት። ያልተያያዘ WebProxy ነገር መፍጠር የሌላ clientን መንገድ አይለውጥም።
using System;
using System.Net;
using System.Net.Http;
var proxy = new WebProxy("http://203.0.113.10:8080")
{
BypassProxyOnLocal = false
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());የሰነዱን አድራሻ ከአገልግሎትዎ ወይም ከHTTP proxy ዝርዝር በእውነተኛ HTTP proxy ይተኩ። ይህ ከፍተኛ ደረጃ አጻጻፍ ለዘመናዊ C# console ፕሮጀክት ተስማሚ ነው፤ የቆዩ ፕሮጀክቶች መመሪያዎቹን በasynchronous Main ውስጥ ሊያስቀምጡ ይችላሉ።
የhandlerውን ሁለቱንም ባህሪዎች ይፈትኑ፤ Proxy መጨረሻ ነጥቡን ይመርጣል፣ UseProxy=true አጠቃቀሙን ያበራል። ነጥቡ ለብቻው ቢሠራም በመተግበሪያው ካልሠራ፣ ማንኛውም ኮድ UseProxyን እንደማያጠፋና ጥሪው ይህንኑ አካል እንደሚጠቀም ያረጋግጡ። የተለየ handler በprocess ወይም OS የproxy ፍለጋ ላይ መመርኮዝን ያስወግዳል።
የproxy አስተዳዳሪ መለያ ሲሰጥ፣ NetworkCredentialን ለWebProxy.Credentials ባህሪ ይመድቡ። የድረ ገጽ Authorization ለሌላ ደረጃ ነው፣ ሕዝባዊ IP:port ግቤትም ነባሪ የመግቢያ መረጃ አይሰጥም። http:// አድማጭ HTTPSን በዋሻ ሊያስተላልፍ ይችላል፤ መደበኛውን የመድረሻ ማረጋገጫ ያስቀጥሉ።
ይህ አጭር ፕሮግራም ሲወጣ ነገሮችን ያስለቅቃል። ለተደጋጋሚ የአገልግሎት ጥሪዎች፣ የ.NET client ዕድሜ መመሪያን ይከተሉና በእያንዳንዱ ጥያቄ የግንኙነት ስብስቦችን እንደገና ከመገንባት ይልቅ client/handlerን ለሥራ ጫናው ያቆዩ። የተመለሰውን ሁኔታ ይፈትኑ፤ የሚሠራ proxy መንገድም የድረ ገጹን እምቢታ ሊያስተላልፍ ይችላል።