2015-11-11 6 views
5

में System.Net.WebRequest के साथ उपयोगकर्ता एजेंट को कैसे सेट करें हाय मैं WebRequest के साथ उपयोगकर्ता एजेंट को सेट करने का प्रयास कर रहा हूं, लेकिन दुर्भाग्य से मुझे केवल यह पता चला है कि HttpWebRequest का उपयोग करके इसे कैसे किया जाए, इसलिए मेरा कोड है और मुझे उम्मीद है आप WebRequest का उपयोग कर उपयोगकर्ता एजेंट को सेट करने में मेरी सहायता कर सकते हैं।सी #

यहाँ मेरी कोड

public string Post(string url, string Post, string Header, string Value) 
    { 
     string str_ReturnValue = ""; 

     WebRequest request = WebRequest.Create(url); 

     request.Method = "POST"; 
     request.ContentType = "application/json;charset=UTF-8";       
     request.Timeout = 1000000; 

     if (Header != null & Value != null) 
     { 
      request.Headers.Add(Header, Value);         
     } 

     using (Stream s = request.GetRequestStream()) 
     { 
      using (StreamWriter sw = new StreamWriter(s)) 
       sw.Write(Post); 
     } 

     using (Stream s = request.GetResponse().GetResponseStream()) 
     {     
      using (StreamReader sr = new StreamReader(s)) 
      { 
       var jsonData = sr.ReadToEnd(); 
       str_ReturnValue += jsonData.ToString(); 
      } 
     } 

     return str_ReturnValue; 
    } 

मैं "request.Headers.Add (" उपयोगकर्ता-एजेंट को जोड़ने के साथ की कोशिश की है कि ", _USER_AGENT);" लेकिन मुझे एक त्रुटि संदेश प्राप्त होता है।

उत्तर

18

पर HttpWebRequest पर HttpWebRequest पर कास्ट करके संपत्ति का उपयोग करें।

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.UserAgent = "my user agent"; 

वैकल्पिक रूप से, बजाय कास्टिंग की आप WebRequest.CreateHttp बजाय उपयोग कर सकते हैं।

+0

समस्या क्योंकि पोस्ट मैं कर रहा हूँ नहीं काम करता है, मैं इसे WebRequest का उपयोग कर काम कर दिया है करता है, कि मैं HttpWebRequest उपयोग नहीं कर सकते है। – enb141

+0

@ user1102989 आप * एक 'HttpWebRequest' का उपयोग कर रहे हैं * - यह एक सुपर प्रकार का' WebRequest' है। आप जो भी कलाकारों के साथ कर रहे हैं वह प्रकार को और अधिक विशिष्ट बना रहा है। – vcsjones

+0

@ user1102989 'उपयोगकर्ता एजेंट 'HTTP शीर्षकों में एक फ़ील्ड है - यानी, यह HTTP प्रोटोकॉल के लिए विशिष्ट है। इसलिए, यह समझ में आता है कि इसे सीधे 'WebRequest' वर्ग पर सेट करने की कोई कार्यक्षमता नहीं है, क्योंकि इस वर्ग को किसी भी प्रकार के प्रोटोकॉल का उपयोग करके किए गए अनुरोधों के लिए बेस क्लास के रूप में डिज़ाइन किया गया है। – kamilk

0

यदि आप मूल WebRequest के बजाय HttpWebRequest का उपयोग करने का प्रयास करते हैं, तो specific property exposed for UserAgent है।

// Create a new 'HttpWebRequest' object to the mentioned URL. 
var myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com"); 
myHttpWebRequest.UserAgent=".NET Framework Test Client"; 

// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. 
var myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
+1

तो WebRequest का उपयोग कर UserAgent जोड़ने के बारे में कोई तरीका नहीं है? – enb141

+0

मुझे लगता है कि UserAgent HTTP वेब अनुरोधों के लिए विशिष्ट होगा। यही कारण है कि यह बेस क्लास 'WebRequest' पर नहीं है। यदि आप 'WebRequest.Create' का उपयोग कर रहे हैं, तो यह फ़ैक्टरी फ़ंक्शन' HttpWebRequest' ऑब्जेक्ट्स बना रहा है (ऊपर दिए गए उदाहरण कोड के अनुसार) ताकि आपको वहां 'UserAgent' प्रॉपर्टी कास्ट और उपयोग करने के लिए सुरक्षित होना चाहिए। – Reddog

+0

HttpWebRequest के साथ धन्यवाद मैं अपने कस्टम उपयोगकर्ता एजेंट – enb141

0
WebRequest postrequest = WebRequest.Create("protocol://endpointurl.ext"); 
((System.Net.HttpWebRequest)postrequest).UserAgent = ".NET Framework" 
+1

सेट करने में सक्षम था, मैं इस कोड के साथ कुछ जानकारी जोड़ने की सलाह देता हूं। – abc123