linux コマンド curlで画像を送信することが出るサーバーがありますが、linuxではなくwindows でhttp postをしたいのでC#に置き換えたいのですが。curl -Fの理解がいまいちできずにいます。
色々調べていくと curl -Fがform構造?mimeタイプだって言うことが最近分かったぐらいのレベルです。
そしてHttpClientを使用するなら
MultipartFormDataContentを使用すればいいだとわかりました。
しかしエラー400を返されるので構文が間違っているのだと思われますが。
どのように修正すればいいのでしょうか?
どのように質問していいのか上手く言えないため修正箇所があれば教えてください。よろしくお願いします
linux
1//これは問題なく実行されます 2curl -F id=123 -F pw=456 -F To=hogeid -F file=@tes.jpg https://relive.abc/api/upload
C#
1//C#に置き換えたいです。 2HttpClient _httpClient = new HttpClient(); 3 Uri uri = new Uri("https://relive.abc/api/upload"); 4 MultipartFormDataContent content = new MultipartFormDataContent(); 5 ByteArrayContent data5 = new ByteArrayContent(File.ReadAllBytes(@"D:\test.png")); 6 7//id,pw,toの値は下記のように設定してあります恐らくここが間違っているのかと個人的に思っています 8ByteArrayContent data1 = new ByteArrayContent(System.Text.Encoding.ASCII.GetBytes("123")); 9content.Add(data1, "id"); 10ByteArrayContent data2 = new ByteArrayContent(System.Text.Encoding.ASCII.GetBytes("456")); 11content.Add(data2, "pw"); 12ByteArrayContent data3 = new ByteArrayContent(System.Text.Encoding.ASCII.GetBytes("hogeid")); 13content.Add(data3, "To"); 14 Debug.WriteLine(await _httpClient.PostAsync(uri, content)); 15//ここのログは400と出る。
回答2件
あなたの回答
tips
プレビュー