[NHTTP] HTTPライブラリ 概要

はじめに

NHTTPライブラリはHTTPプロトコルを実現するためのライブラリです。

処理の流れ

ライブラリの初期化

まずはじめにNHTTP_Startup関数を呼び、NHTTPライブラリを初期化します。

接続ハンドルの生成とリクエスト設定

次に、NHTTP_CreateConnection関数でHTTP接続ハンドルを生成して 各種の接続設定およびリクエスト設定を行います。
必要に応じて、以下の関数群を組み合わせて使用します。

接続開始

設定の済んだ接続ハンドルは、NHTTP_StartConnection関数を呼び出すことによって 実際に通信処理の開始準備に入ります。ライブラリ内部のスレッドは、通信準備中の接続ハンドルを1個ずつ順番に処理します。キューに上限はありません。

通信中は必要に応じて各種のNHTTPConnectionEventイベントが発生し、 NHTTP_CreateConnection関数で設定したコールバックへ通知されます。

通信処理中はNHTTP_GetConnectionError関数の返り値がNHTTP_ERROR_BUSYとなり、 しばらくたてば通信処理は内部で自動的に終了します。 NHTTP_CancelConnection関数でキャンセルすることも可能です。 通信処理またはそのキャンセル要求が完了するまでその場で待機するにはNHTTP_WaitForConnection関数が使用可能です。

レスポンスの解析と接続ハンドルの解放

通信が成功した接続ハンドルはHTTPレスポンス情報を保持しています。
必要に応じて、以下の関数群を使用してレスポンスの内容を参照します。

必要な情報を参照した後、接続ハンドルはNHTTP_DeleteConnectionで解放します。

さらにHTTPリクエストを発行する必要があれば、接続ハンドルを再度生成して同様の手順で通信を行います。

ライブラリの終了

すべての処理が完了した後はNHTTP_CleanupAsyncでNHTTPライブラリを解放して終了します。

注意事項

POSTに関して

ラベルと値を追加して、リクエスト開始の際にまとめて送信するNHTTP_AddPostDataAscii,NHTTP_AddPostDataBinaryと、
ラベル無しで単一のデータのみをリクエスト開始の際に送信するNHTTP_AddPostDataRawは併用できません。
先にセットしたほうが有効になります。

PROXYサーバの使用に関して

TWL では上級者向け接続設定 4・5・6 にPROXYサーバを設定する事ができますが、これをアプリケーションでサポートするかは任意です。NHTTP では自動的にこれらの設定を利用する事はありません。 もしサポートする場合は NHTTP_SetProxyDefault を呼び出して下さい。現在接続に使用している設定の PROXYサーバ が設定されます。(接続先1・2・3の場合は何もしません。)

PROXY認証に関して

PROXY認証に失敗した場合エラー値自体はNHTTP_ERROR_NONEのままです。
NHTTP_GetResultCodeでHTTPリザルトが200であるかどうかでエラーの判別を行ってください。

SSL に関して

NHTTP ライブラリは以下の二種類の SSL をサポートしています。

SSL を使用するためには、使用する SSL の種類に応じてリンクするライブラリを切り替える必要があります。
また、一部の API ではパラメータとして渡す値が違いますのでご注意下さい。

CPS SSL
外部ライブラリを使用しない通常の SSL のことです。libnhttp.*.a をリンクします。
NSSL
別パッケージにて提供される外部 SSL ライブラリです。同梱の libnhttp.nssl.*.a をリンクします。

履歴

2009/02/12 SSL に関して追記
2008/09/04 TwlWiFi パッケージ用に手直し
2006/12/22 旧仕様の説明を削除。
2006/11/02 接続設定追記。
2006/10/30 記述ミスを修正。
2006/10/19 新仕様の公開に伴う全面改定。
2006/6/26 初版。