「C Sharpとネットワーク - HttpClient」の版間の差分

ナビゲーションに移動 検索に移動
209行目: 209行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== POST ====
==== POST : テキストファイル ====
以下の例では、リクエストのボディにJSON形式の内容を格納して送受信している。<br>
以下の例では、リクエストのボディにJSON形式の内容を格納して送受信している。<br>
JSONは、JS、Ruby、Python、PHP等では連想配列を使用して簡単に作成できるが、C#においては<code>Dictionary</code>型を使用および変換後、<code>StringContent</code>型に情報を付加してリクエストに格納する。<br>
JSONは、JS、Ruby、Python、PHP等では連想配列を使用して簡単に作成できるが、C#においては<code>Dictionary</code>型を使用および変換後、<code>StringContent</code>型に情報を付加してリクエストに格納する。<br>
282行目: 282行目:
     return request;
     return request;
  }
  }
</syntaxhighlight>
<br>
==== POST : バイナリファイル ====
<br>
==== MIMEタイプ (コンテンツタイプ) ====
application/x-www-form-urlencodedおよびmultipart/form-dataは、HTTPのPOSTリクエストでデータを送信するための異なるMIMEタイプである。<br>
<br>
* application/x-www-form-urlencoded
*: HTMLフォームデータをエンコードして送信するためのデフォルトのMIMEタイプである。
*: データはキーと値のペアになり、それらのペアは<u>key1=value1&key2=value2</u>のように<code>&</code>で区切られる。
*: <br>
*: 特殊文字は、パーセントエンコーディング(%エンコーディング)される。
*: 例: スペースは%20にエンコーディングされる。
*: <br>
*: 一般的に、簡単なフォームデータやクエリ文字列を送信する場合に使用する。
*: <br>
* multipart/form-data
*: バイナリデータや大きなファイルを含む複数のデータタイプをサポートするためのMIMEタイプである。
*: <br>
*: データは複数の部分に分かれており、各部分にはヘッダがあり、ヘッダにはContent-Dispositionが含まれる。
*: このヘッダは、データがどのように処理されるべきかを示している。
*: <br>
*: バイナリデータを直接送信するために使用され、一般的には、ファイルのアップロード等で使用される。
*: <br>
*: <code>--boundary</code>、<code>--boundary--</code>は、各部分の開始と終了を示すために使用され、部分はそれぞれ独立して処理される。
*: どちらを選択するかは、データの種類と送信する内容に依存する。
*: 一般的には、HTMLフォームでテキストデータを送信する場合は<u>application/x-www-form-urlencoded</u>が使用され、ファイルのアップロード等でバイナリデータを送信する場合は<u>multipart/form-data</u>が使用される。
<syntaxhighlight lang="css">
/* 例: */
--boundary
Content-Disposition: form-data; name="key1"
value1
--boundary
Content-Disposition: form-data; name="key2"
value2
--boundary--
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>

案内メニュー