2012-10-29 46 views
7

Considder निम्नलिखित कोड:MultipartFormDataContent StringContent आइटम पोस्ट नहीं है जब नाम [] साथ अंत नहीं है

MultipartFormDataContent MPFD = new MultipartFormDataContent(); 
    MPFD.Add(new StringContent(0.ToString()), "doesNotWork"); 
    MPFD.Add(new StringContent(0.ToString()), "works[]"); 
    HttpClient apiClient = new HttpClient(); 
    var Result = apiClient.PostAsync(testurl, MPFD).Result; 
    Console.WriteLine("Response: " + Result.Content.ReadAsStringAsync().Result); 

इस डेटा तो एक सामान्य हैंडलर जो करता है करने के लिए पोस्ट किया जाता है:

context.Response.ContentType = "text/plain"; 
foreach (string key in context.Request.Form.AllKeys) { 
    context.Response.Write(key + ": " + context.Request.Form[key] + Environment.NewLine); 
} 

हैं मैं ऐसा करता हूं, केवल '[]' में समाप्त होने वाले नाम पोस्ट किए जाते हैं, लेकिन मुझे '[]' के बिना नाम पोस्ट करने में भी सक्षम होना चाहिए। कोई विचार क्यों यह व्यवहार होता है और इसे कैसे हल किया जाए?

नोट: FormUrlEncodedContent का उपयोग करते समय, [] के बिना नाम पोस्ट किए जाते हैं।

+0

_ "अगर मैं ऐसा करता हूं, तो केवल [']' में समाप्त होने वाले नाम पोस्ट किए जाते हैं" _ - क्या आपने इसे सत्यापित किया है, उदाहरण के लिए [फिडलर] (http://www.fiddler2.com/fiddler2/) का उपयोग करके? – CodeCaster

उत्तर

0
form.Add(new StringContent(Opts.DataType), "\"fieldname\""); 
form.Add(new ByteArrayContent(mycontent, 0, mycontent.Length), "\"filename\"", "filename.csv"); 

अनावश्यक लगता है, लेकिन यह काम करता है।