पर सेट करने के लिए कैसे करें .NET पर HTTP अनुरोधों के साथ मुझे कम प्रदर्शन समस्या थी। स्थानीयहोस्ट पर एक आरईएसटी एपीआई के HTTP HTTP अनुरोध को पूरा करने के लिए लगभग 500 एमएस लिया गया। मैंने इसे ठीक करने में काफी समय बिताया। मैंने कई तरीकों से प्रयास किया है: HttpClient
, HttpWebRequest
, WebClient
और RestSharp
। उनमें से कोई भी काम नहीं करता है। इंटरनेट पर अधिकांश समाधान Proxy
पैरामीटर null
पर सेट करने के लिए कहा गया है लेकिन यह अभी भी तेज़ी से काम नहीं करेगा।सी # HttpClient Keep-Alive को झूठी
एक ही रास्ता है कि मैं इस समय को कम करने के लिए मिला गलत पर अनुरोध का रखें-जिंदा पैरामीटर सेट करने के लिए है:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.KeepAlive = false;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
यह महान काम करता है। समय घटाकर 7-10 एमएस कर दिया गया है। लेकिन अब कुछ कारणों से मुझे HttpWebRequest
के बजाय HttpClient
का उपयोग करने की आवश्यकता है। और मुझे नहीं पता कि Keep-Alive को HttpClient
के लिए गलत पर सेट कैसे करें। मुझे मिली एकमात्र चीज यह है कि "Keep-Alive" को "कनेक्शन" हेडर सेट करके इसे सही कैसे सेट करें।
मैं HttpClient द्वारा पोस्ट अनुरोध के लिए इस कोड का उपयोग कर रहा हूँ:
HttpClient _http = new HttpClient();
_http.DefaultRequestHeaders.Accept.Clear();
_http.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
_http.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");
var content = new StringContent(
request, Encoding.UTF8, "application/%appname%+xml");
content.Headers.ContentType.Parameters.Add(
new NameValueHeaderValue("type", "payload"));
HttpResponseMessage response = await _http.PostAsync(uri, content);
और यह अभी भी पूरा करने के लिए 500-600 के बारे में एमएस लेता है।
http://stackoverflow.com/questions/15211812/using-a-keep-alive-connection-in-winrts-httpclient-class ... बस एक विचार ... –
@AndreasNiedermair धन्यवाद, यह पहला है Google खोज परिणाम में लिंक करें। मैंने पहले ही यह कोशिश की है: सामग्री। हेडर। जोड़ें ("Keep-Alive", "false"); लेकिन यह भी पूरा करने के लिए 500 एमएस से अधिक लेता है। – Vaskrol