■86305 / ) |
HttpClientでのmultipart/mixed送信 |
□投稿者/ さえ (1回)-(2018/01/15(Mon) 23:59:06)
|
分類:[.NET 全般]
プログラミング初心者です。 あるWEBAPIを利用するため、C#でコードを組みたいと考えています。
APIの仕様は以下の通りです。 ・通信プロトコル HTTP/1.1 ・HTTP Method:POST ・Content-Type: multipart/mixed ・Content-Disposition:mixed ・Content-Type: text/csv (複数のcsvファイルをアップロードし、文字コードはShift_JISと指定されています)
下記のコードを書いてみたのですが、上手く結果を取得できません。 通信は出来ているようで応答は帰ってくるのですが、APIが返すメッセージは 「ファイルがありません」という内容で、ファイルが認識されていないようです。
アップロードするcsvファイルはShift_JISで保存しているつもりですが、文字コードの問題かもしれません。 HttpClientの使い方やヘッダの設定値に問題があるかもしれません。 自分では解決策が全く分からず困っています。。間違っている点やヒント等でもご指摘いただけると大変有難いです。 どうぞよろしくお願いいたします。
void test() { var content = new MultipartFormDataContent(); content.Headers.ContentType.MediaType = "multipart/mixed"; var list = new List<string>(); list.Add("C:\A"); list.Add("C:\B"); list.Add("C:\C");
foreach (var s in list) { var fileContent = new StreamContent(File.OpenRead(s)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("mixed") { Name = Path.GetFileName(s) }; fileContent.Headers.ContentType = new MediaTypeHeaderValue("text/csv"); content.Add(fileContent); }
var httpClient = new HttpClient(); string url = @"送信先のurl"; HttpResponseMessage response = httpClient.PostAsync(url, content).Result;
string test = response.Content.ReadAsStringAsync().Result; }
|
|