2009-05-22 7 views
14

में कनेक्शन हैडर से छुटकारा पाने मैं WebClient का उपयोग कर उपयोग कर रहा हूँ सी #()।सी # WebClient

मैं परीक्षण कर रहा था कि कौन से शीर्षलेख भेजे जाते हैं, और मैंने देखा कि निम्न शीर्षलेख स्वचालित रूप से जोड़ा जाता है।

Connection : Keep-Alive 

क्या इसे हटाने का कोई तरीका है?

उत्तर

4

उपयोग HttpWebRequest बजाय WebClient (यह थोड़ा कम सुविधाजनक है, लेकिन नहीं बहुत से) और false करने के लिए KeepAlive गुण सेट।

मैंने इसका परीक्षण नहीं किया है - यह संभव है कि यह केवल इसे हटाने के बजाय कनेक्शन शीर्षलेख का मान बदल देगा - लेकिन यह एक कोशिश के लायक है। Connection संपत्ति कम से कम के लिये दस्तावेज का सुझाव यह केवल कहते हैं कि Keep-Alive।

+5

एक बात नोट करने के लिए शामिल होंगे कि ऐसा करने से * को दूर नहीं करता * कनेक्शन है हेडर, हालांकि यह इसे "कनेक्शन: Keep-Alive" से "कनेक्शन: बंद करें" में बदल देता है। –

15

मैं आज सुबह ही समस्या में भाग लिया था। स्कीट के संकेत जारी रखते हुए, यह विरासत में से WebClient को HttpWebRequest पास करके प्राप्त किया जा सकता:

class MyWebClient : WebClient 
{ 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest request = base.GetWebRequest(address); 
     if (request is HttpWebRequest) 
     { 
      (request as HttpWebRequest).KeepAlive = false; 
     } 
     return request; 
    } 
} 

अब भेजा हेडर Connection : close