質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3592閲覧

C#のHttpClientでMultiPartのデータをPOST

Lopn_

総合スコア50

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/11/13 12:55

###前提・実現したいこと
C#のHttpClientで画像とjson形式?のデータのPOSTを行いたいです。
pythonではこのようなデータを送信しているようでした。

python

1path = "画像のpath" 2 3file = { 4 "file": open(path, 'rb') 5} 6 7params = { 8 "name": "media", 9 "size": len(open(path, 'rb').read()), 10 "type": "image", 11 "var": "1.0" 12} 13 14#json stringにしている? 15data = { 16 "params": json.dumps(params) 17} 18

POSTされたデータはこのようになっています。
イメージ説明
イメージ説明

multipartのデータをC#のHttpClientでPOSTするにはどのように書けばいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

csharp

1var file = @"xxxxxxxx.jpg"; 2 3MultipartFormDataContent Content = new MultipartFormDataContent(); 4 5FileInfo i = new FileInfo(file); 6 7int size = (int)i.Length; 8 9Dictionary<string, dynamic> parameter = new Dictionary<string, dynamic>() 10{ 11 { "name", "media" }, 12 { "size", size }, 13 { "ver", "1.0" }, 14}; 15 16try{ 17 string json = JsonConvert.SerializeObject(parameter, Formatting.None, new IsoDateTimeConverter()); 18 var body = new StringContent(json, Encoding.UTF8, "multipart/form-data"); 19 Content.Add(body, "params"); 20 21 var fileContent = new StreamContent(File.OpenRead(file)); 22 Content.Add(fileContent, "file"); 23 24 var Request = new HttpClient(); 25 26 var response = Request.PostAsync("http://uploadurl", Content).Result; 27} 28catch (Exception e){ 29 30}

投稿2017/11/13 14:24

Lopn_

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MultipartFormDataContent で検索して。

投稿2017/11/13 14:19

kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問