2011-06-03 11 views
18

मैं Request.Content-Type = ..., Request.Content-Length = ...स्वीकृति और स्वीकृति-भाषा शीर्षलेख फ़ील्ड कैसे सेट करें?

स्वीकृति और स्वीकृति-भाषा कैसे सेट करें?

 
POST /test-upload.php.xml HTTP/1.1 
Host: example.com 
User-Agent: Mozilla/5.0 (Windows NT 5.2; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: tr-tr,tr;q=0.8,en-us;q=0.5,en;q=0.3 
Accept-Encoding: gzip, deflate 
Accept-Charset: ISO-8859-9,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Content-Type: multipart/form-data; boundary=---------------------------21724139663430 
Content-Length: 56048 

उत्तर

31

Accept property पर एक नज़र डालें:

HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(myUri); 
myHttpWebRequest.Accept="image/*";  
HttpWebResponse myHttpWebResponse= 
     (HttpWebResponse)myHttpWebRequest.GetResponse(); 

This MSDN article कस्टम हेडर जोड़ने का तरीका बताता

मैं एक फ़ाइल (आरएफसी 1867) को अपलोड करने और इस तरह के अनुरोध बनाने की जरूरत करना चाहते हैं आपके अनुरोध पर:

//Get the headers associated with the request. 
WebHeaderCollection myWebHeaderCollection = myHttpWebRequest.Headers;  

//Add the Accept-Language header (for Danish) in the request. 
myWebHeaderCollection.Add("Accept-Language:da"); 

//Include English in the Accept-Langauge header. 
myWebHeaderCollection.Add("Accept-Language","en;q=0.8"); 
+0

को webrequest डाली लेकिन अब मैं एक समस्या है ... मैं भेज छवि और ऑडियो फ़ाइलें लेकिन केवल छवि फ़ाइलों को भेजने था। कोई ऑडियो फ़ाइल नहीं है। क्या यह मेरे हेडर या एटिर्यूब्यूट्स के बारे में हो सकता है? – Mennan

+0

@ मेनन: किस तरह की समस्या? – Dyppl

+0

@Mennan: आपको शायद उचित मात्रा में जानकारी के साथ एक और प्रश्न पूछना होगा, उचित कोड नमूना के बिना कुछ कहना मुश्किल है और परिणाम विवरण – Dyppl

1

मुझे कई परेशानियों के बाद पुष्टि करनी है जी हेडर का उपयोग करने का प्रयास करता है कि

myWebHeaderCollection.Add("foo","bar"); समाधान पूरी तरह से काम करता है।

यदि आप भाषा सेट करना चाहते हैं।

myWebHeaderCollection.Add("AcceptCharset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"); 
myWebHeaderCollection.Add("TransferEncoding", "gzip,deflate"); 

हालांकि मान निर्धारित नहीं करता है। जो पहले एक काम के बाद एक तार्किक निष्कर्ष की तरह प्रतीत हो सकता है।

+2

इन्फिरेटिंगली (क्योंकि यह समझ में नहीं आता है) हालांकि, माइक्रोसॉफ्ट ने न केवल HTTP मॉडल को अनदेखा करने और इसके बजाय अपने "सुविधाजनक" मॉडल का आविष्कार किया है (उदाहरण के लिए अनुरोध का प्रतिनिधित्व करने वाले किसी ऑब्जेक्ट पर एक स्वीकृति गुण प्राप्त करके, जब यह केवल एक HTTP शीर्षलेख है), लेकिन जेनेरिक तरीकों का काम सुनिश्चित करने के लिए भी चोट का अपमान जोड़ें! इसके साथ "स्वीकार करें" सेट करने का प्रयास करें, और आपको ArgumentException मिलता है कि आप "प्रतिबंधित शीर्षलेख" (उनके मॉडल का एक आर्टिफैक्ट, HTTP के साथ कुछ भी नहीं) सेट नहीं कर सकते हैं। –

0

यदि आप HttpRequestMessage का उपयोग कर रहे हैं, तो हेडर का उपयोग करके हेडर सेट करें। विधि जोड़ें। आपके मामले में:

request.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); 
0

आप यकीन है कि आप (HttpWebRequest), जहां स्वीकार हैडर संपत्ति उपलब्ध है के लिए अनुरोध डाली टाइप करने की आवश्यकता है।

पुरानी वेबरक्वेट कक्षा में, स्वीकृति हेडर पहुंच योग्य नहीं है।

0

आप स्वीकार करें प्रकार और सामग्री प्रकार सेट करना चाहते हैं, बस HTTPWebRequest

var webreq= (HttpWebRequest)WebRequest.Create(requestUri); 
webreq.Method = "POST"; 
webreq.Accept = "application/json"; 
webreq.ContentType = "application/json"; 
संबंधित मुद्दे