AdvancedHTTPプラグイン
テスト環境 ( バージョン番号 ) : 3.3.0
このプラグインでは、グローバルオブジェクト「cordova.plugin.http」のAPIを使用し、HTTPサーバーとの通信を行います。
このオブジェクトは、グローバルスコープに属していますが、使用できるのは、deviceready イベントの発火後になります。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(cordova.plugin.http);
}プラグインID
cordova-plugin-advanced-httpプラグインの追加方法(Monaca上での操作)
Monaca クラウド IDE から
設定 → Cordova プラグインの管理を選択します。利用可能なプラグイン 項目の
AdvancedHTTPプラグインにカーソルを置き、有効ボタンをクリックします。
機能
iOSやAndroidのネイティブ機能を用いてHTTP通信を行います。
Javascript で
fetch APIなどを用いた場合に比べて以下のような利点があります。CORSエラーの回避
APIの解説
基本的なAPI
以下の基本的なAPIについて解説します。
sendRequest
setDataSerializer
get
post
sendRequest
指定した
urlにHTTPリクエストを送信します。optionsに様々なパラメータを設定します。method: HTTPメソッドheaders: HTTPヘッダparam: クエリ文字列(主にgetメソッドで使用)data: リクエストボディのデータ。形式はserializerで指定(post,putなどのメソッドで使用)serializer: データ形式の指定。詳細は後述のsetDataSerializer参照その他のパラメータについてはCordova Advanced HTTP plugin参照
success: 成功時のコールバックerror: エラー時のコールバック
例
setDataSerializer
送信するデータの形式を指定します。
sendRequest APIの options.serializerで指定するのと同等です。POST/PUT/PATCHメソッドに対応しています。
指定できる値:
"urlencoded"
"json"
"utf8"
"multipart"
"raw"
例1: serializer="urlencoded"
key1=123,key2=abcの値がフォームデータとして送信されます。(Content-Type: application/x-www-form-urlencodedでの送信に相当)
例2: serializer="json"
リクエストボディにJSONデータを載せて送信します。
その他のデータ形式についてはCordova Advanced HTTP pluginを参照してください。
get
GETリクエストを送信します。
sendRequest APIでmethod: "get"を指定した場合と同等の機能です。第2引数にクエリ文字列を指定します。
例
post
POSTリクエストを送信します。
sendRequest APIでmethod: "post"を指定した場合と同等の機能です。第2引数にデータを指定します。データの送信形式は
setDataSerializer APIで指定します。
例
高度な使い方
AdvancedHTTPプラグインにはその他にも様々なAPIが用意されています。
put / patch / delete / head / options
uploadFile / downloadFile
getBasicAuthHeader
useBasicAuth
setRequestTimeout
setConnectTimeout (Android Only)
setReadTimeout (Android Only)
setFollowRedirect
getCookieString
setCookie
clearCookies
setServerTrustMode
setClientAuthMode
removeCookies
これらのAPIの詳細についてはCordova Advanced HTTP pluginを参照してください。
サンプル
fetch APIとの比較
例: POSTリクエストを送信する場合
fetch API
AdvancedHTTP
サンプルアプリ
この記事に記載されたサンプルコードを実装したアプリケーションを公開しています。 Monacaにプロジェクトをインポートしてご利用ください。
最終更新
役に立ちましたか?