2010-07-18 13 views
6

अनुवर्ती http पोस्ट अनुरोध मल्टीपार्ट/फॉर्म-डेटा सामग्री प्रकार का उपयोग कर डेटा भेजता है।मल्टीपार्ट/फॉर्म-डेटा सामग्री प्रकार अनुरोध भेजें

-----------------------------27311326571405\r\nContent-Disposition: form-data; name="list"\r\n\r\n8274184\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="list"\r\n\r\n8274174\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="list"\r\n\r\n8274178\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="antirobot"\r\n\r\n2341234\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="votehidden"\r\n\r\n1\r\n-----------------------------27311326571405--\r\n 

सूची एक इनपुट नाम है। 8274184, 8274174, 8274178 आदि इनपुट मूल्य हैं। लेकिन 27311326571405, 27311326571405 ... आदि क्या है? मैं सी # का उपयोग कर एक ही अनुरोध भेजना चाहता हूं लेकिन मुझे वास्तव में यह नहीं पता कि मैं यह संख्या कहां प्राप्त कर सकता हूं।

उत्तर

13

---27311326571405 को सीमा कहा जाता है और यह एक यादृच्छिक स्ट्रिंग है जिसे आप जो डेटा भेज रहे हैं उसमें कभी प्रकट नहीं होना चाहिए और मूल्यों के बीच विभाजक के रूप में उपयोग किया जाता है।

class Program 
{ 
    static void Main() 
    { 
     var data = new List<KeyValuePair<string, string>>(new[] 
     { 
      new KeyValuePair<string, string>("list", "8274184"), 
      new KeyValuePair<string, string>("list", "8274174"), 
      new KeyValuePair<string, string>("list", "8274178"), 
      new KeyValuePair<string, string>("antirobot", "2341234"), 
      new KeyValuePair<string, string>("votehidden", "1"), 
     }); 

     string boundary = "----MyAppBoundary" + DateTime.Now.Ticks.ToString("x"); 

     var request = (HttpWebRequest)WebRequest.Create("http://example.com"); 
     request.ContentType = "multipart/form-data; boundary=" + boundary; 
     request.Method = "POST"; 

     using (var requestStream = request.GetRequestStream()) 
     using (var writer = new StreamWriter(requestStream)) 
     { 
      foreach (var item in data) 
      { 
       writer.WriteLine("--" + boundary); 
       writer.WriteLine(string.Format("Content-Disposition: form-data; name=\"{0}\"", item.Key)); 
       writer.WriteLine(); 
       writer.WriteLine(item.Value); 
      } 
      writer.WriteLine(boundary + "--"); 
     } 

     using (var response = request.GetResponse()) 
     using (var responseStream = response.GetResponseStream()) 
     using (var reader = new StreamReader(responseStream)) 
     { 
      Console.WriteLine(reader.ReadToEnd()); 
     } 
    } 
} 
+0

महान उत्तर, वास्तव में –

0

यह एक अर्द्ध यादृच्छिक स्ट्रिंग, विभिन्न क्षेत्रों को अलग करने के लिए प्रयोग किया जाता है:

यहाँ किसी दिए गए पते पर इस तरह के एक अनुरोध भेजने का एक उदाहरण है। सामग्री-प्रकार शीर्षलेख में इसे boundary के रूप में दिया जाता है।

what-are-valid-characters-for-creating-a-multipart-form-boundary

संबंधित मुद्दे