2016-07-26 31 views
0

http APIにcsvファイルとパラメータを送信しようとしていますが、何が起こっているのかをデバッグするのに苦労しています。パラメータ(C#)を持つHttpClient MultipartFormDataContent

パラメータのみ(CSVファイル)を必要とPOST要求の場合

、私は正常にこの操作を行うことができますパラメータを必要とPOST要求の場合

HttpContent upload = new FormUrlEncodedContent(new Dictionary<string, string> { { "name", "myName" }}); 
    HttpResponseMessage uploadResponse = await client.PostAsync("api/datasets", upload); 

csvファイル私はMultipartFormDataContent使用しています:

  var content = new MultipartFormDataContent(); 

      HttpContent upload = new FormUrlEncodedContent(new Dictionary<string, string> { { "name", "myName" }});    
      content.Add(upload); 

      byte[] csvBytes = File.ReadAllBytes("myfile.csv"); 
      var csvContent = new ByteArrayContent(csvBytes); 
      content.Add(csvContent, "csvfile", "datafile.csv"); 

      HttpResponseMessage uploadResponse = await client.PostAsync("api/datasets", content); 

しかし、サーバーは "name"パラメータを指定していないというメッセージを返すようになりました。私は何が欠けていますか?パラメータを正しく提出するにはどうすればよいですか?

new List<KeyValuePair<string, string>>({ "name", "myName" }) 

にこの

new Dictionary<string, string> { { "name", "myName" }} 

答えて

0

変更は、それが今のparamに気づくはずです。

+0

hmmmまだ動作していないようです。おそらく、断った側に何か間違いがあるでしょうか? – Cameron

0

before content.Add(csvContent、 "csvfile"、 "datafile.csv"); これらの行を追加してください:

関連する問題