

#include <nitroWiFi/nhttp.h>
int NHTTP_SetPostDataEncoding( NHTTPConnectionHandle handle, NHTTPEncodingType type );
| handle | NHTTP_CreateConnection()で生成した接続ハンドル | ||||||
| type | NHTTPEncodingTypeで指定する以下のいずれかのエンコーディング形式
|
エンコーディング形式の設定に成功すれば0を、 接続ハンドルがNULLの場合、 NHTTP_AddPostDataRaw()を既に接続ハンドルに設定した場合に失敗し-1を返します。
送信すべきHTTPリクエストPOST項目のエンコーディング形式を設定します。
この関数は、NHTTP_AddPostDataAscii()やNHTTP_AddPostDataBinary()で設定した送信データをPOSTリクエストデータでどのようにエンコーディングするか明示的に指定するために呼び出します。
枠内 :関数呼び出し例
枠内 :実際に送信されるHTTP POSTリクエストデータ
青:NHTTP_AddPostData*関数でアプリケーションが指定した値
赤:ライブラリが自動的に生成する値
(1) テキストデータのみ送信する際の呼び出し例
NHTTP_SetPostDataEncoding(handle, NHTTP_ENCODING_TYPE_URL); NHTTP_AddPostDataAscii(handle, label1, value1); NHTTP_AddPostDataAscii(handle, label2, value2);
Content-Type: application/x-www-form-urlencoded Content-Length: [length] URL-encoding([label1]=[value1]&[label2]=[value2])
(2) バイナリデータも送信する際の呼び出し例
NHTTP_SetPostDataEncoding(handle, NHTTP_ENCODING_TYPE_MULTIPART); NHTTP_AddPostDataAscii(handle, label1, value1); NHTTP_AddPostDataBinary(handle, label2, value2, value2_length);
Content-Type: multipart/form-data; boundary=[boundary] Content-Length: [length] [boundary] Content-Type: application/octet-stream Content-Disposition: form-data; name="[label1]" Content-Transfer-Encoding: binary [value1] [boundary] Content-Type: application/octet-stream Content-Disposition: form-data; name="[label2]" Content-Transfer-Encoding: binary [value2] [boundary]--
(3) アプリケーションが直接生データを指定して送信する際の呼び出し例
NHTTP_AddPostDataRaw(handle, rawdata, length);
Content-Length: [length] [rawdata]
NHTTP_AddPostDataAscii,
NHTTP_AddPostDataBinary
2007/05/21 返り値を追記。
2007/04/26 コード例を追記。
2006/10/30 記述ミスを修正。
2006/10/19 説明を追記。
2006/7/25 初版。