2012-10-29 11 views
7

Considder đoạn mã sau:MultipartFormDataContent không gửi mục StringContent khi tên không kết thúc với []

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); 

Những thông tin này sau đó được đưa lên một Handler Generic mà làm:

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

Nếu Tôi làm điều này, chỉ những cái tên kết thúc bằng '[]' mới được đăng, nhưng tôi cũng cần phải có thể đăng tên mà không có '[]'. Bất kỳ ý tưởng tại sao hành vi này xảy ra và làm thế nào để giải quyết nó?

Lưu ý: Khi sử dụng FormUrlEncodedContent, tên mà không [] được đăng.

+0

_ "Nếu tôi làm điều này, chỉ những tên kết thúc bằng '[]' mới được đăng" _ - bạn đã xác minh điều này chưa, ví dụ sử dụng [Fiddler] (http://www.fiddler2.com/fiddler2/)? – CodeCaster

Trả lời

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

Dường như không cần thiết, nhưng nó hoạt động.

Các vấn đề liên quan