2012-10-29 18 views
7

Considder następujący kod:MultipartFormDataContent nie dodawać elementy StringContent gdy nazwa nie kończy się []

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

Dane te są następnie wysłane do Generic Handler, która robi:

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

Jeśli Robię to, publikowane są tylko te nazwy, które kończą się na "[]", ale muszę też móc publikować imiona bez "[]". Każdy pomysł, dlaczego to zachowanie występuje i jak go rozwiązać?

Uwaga: W przypadku korzystania z FormUrlEncodedContent, nazwy bez [] zostaną opublikowane.

+0

_ "Jeśli to zrobię, tylko nazwy, które kończą się na" [] ", zostaną opublikowane" _ - czy to zauważyłeś, na przykład używając [Skrzypka] (http://www.fiddler2.com/fiddler2/)? – CodeCaster

Odpowiedz

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

Wydaje się niepotrzebne, ale działa.

Powiązane problemy