HttpClientオブジェクト
コンポーネント情報 | |
---|---|
version | 8.0 |
HTTPリクエストを扱うためのクラスです。
- コンストラクタ(引数を省略)
var client = new HttpClient();
- コンストラクタ(引数を指定)
var client = new HttpClient({ 'connection-request-timeout-millis': 30 * 1000, 'connect-timeout-millis': 30 * 1000, 'socket-timeout-millis': 30 * 1000, 'redirects-enabled': true, 'max-redirects': 10, 'ignore-ssl-errors': true });
- GETリクエスト
var client = new HttpClient(); var response = client.get('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- HEADリクエスト
var client = new HttpClient(); var response = client.head('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- OPTIONSリクエスト
var client = new HttpClient(); var response = client.options('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- DELETEリクエスト
var client = new HttpClient(); var response = client.doDelete('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- POSTリクエスト
var client = new HttpClient(); var response = client.post('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- PUTリクエスト
var client = new HttpClient(); var response = client.put('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- PATCHリクエスト
var client = new HttpClient(); var response = client.patch('https://www.example.com'); if (!response.error) { response.data.close(); } client.close();
- レスポンス(ステータスコード)
var client = new HttpClient(); var response = client.get('https://www.example.com'); if (!response.error) { Debug.print(response.data.status); // 200 response.data.close(); } client.close();
- レスポンス(コンテントレングス)
var client = new HttpClient(); var response = client.get('https://www.example.com'); if (!response.error) { Debug.print(response.data.contentLength); // コンテントレングス response.data.close(); } client.close();
- レスポンス(レスポンスヘッダー)
var client = new HttpClient(); var response = client.get('https://www.example.com'); if (!response.error) { if (response.data.responseHeaders) { // forEach 関数でレスポンスヘッダーをループ response.data.responseHeaders.forEach(function(element, index, array) { // レスポンスヘッダー Debug.print(element.name + ': ' + element.value); }); // for ループでレスポンスヘッダーをループ for (var i = 0; i < response.data.responseHeaders.length; ++i) { Debug.print(response.data.responseHeaders[i].name + ': ' + response.data.responseHeaders[i].value); } } response.data.close(); } client.close();
- レスポンス(レスポンスボディー)
var client = new HttpClient(); var response = client.get('https://www.example.com'); if (!response.error) { response.data.openAsText(function(textReader, error) { if (error == null) { var line; while ((line = textReader.readLine()) != null) { // 1行ずつ表示 Debug.print(line); } } }, 'UTF-8'); // レスポンスを UTF-8 として開く } client.close();
- レスポンス(バイナリファイルを取得しダウンロード)
var client = new HttpClient(); var response = client.get('http://localhost:8080/imart/favicon.ico'); if (!response.error) { response.data.openAsBinary(function(byteReader, error) { if (error == null) { Module.download.send(byteReader, 'favicon.ico'); // 画像を取得し、ダウンロード } }); } client.close();
- リクエストヘッダーを送信
var client = new HttpClient(); var response = client.get('https://www.example.com', { headers: { // ヘッダーを送信したい場合、第2引数の headers プロパティーにキーバリュー形式で値を設定してください 'Authorization': 'Basic dXNlcjpwYXNzd29yZA==', 'x-my-request-header': 'my-request-header-value' } }); if (!response.error) { response.data.close(); } client.close();
- リクエストパラメータを送信(GET, HEAD, OPTIONS, DELETE の場合、body プロパティに文字列でキーバリューを指定してください。これ以外の形式はサポートしていません。POST, PUT, PATCH はこれ以外にもストリームや文字列を送信できます。)
var client = new HttpClient(); var response = client.get('https://www.example.com', { body: { // パラメータを送信したい場合、第2引数の body プロパティーにキーバリュー形式で値を設定してください 'api_key': 'my api key', 'my_value': 'my value' } }); if (!response.error) { response.data.close(); } client.close();
- 文字コードを指定してリクエストを送信
var client = new HttpClient(); var response = client.get('https://www.example.com', { body: { 'api_key': 'my api key', 'my_value': '日本語' }, 'default-charset': 'Shift_JIS' // 非マルチパートなリクエストのデフォルトの文字コードを指定(ここでは Shift_JIS で GET リクエストを送信) }); if (!response.error) { response.data.close(); } client.close();
- POST(application/x-www-form-urlencoded)を送信
var client = new HttpClient(); var response = client.post('https://www.example.com', { // 「Content-Type: application/x-www-form-urlencoded」ヘッダーは自動で付与されます body: { // パラメータを送信したい場合、第2引数の body プロパティーにキーバリュー形式で値を設定してください 'api_key': 'my api key', 'my_value': 'my value' } }); if (!response.error) { response.data.close(); } client.close();
- POST(application/x-www-form-urlencoded)で配列を送信
var client = new HttpClient(); var response = client.post('https://www.example.com', { body: { 'api_key': 'my api key', 'my_value': ['my value 1', 'my value 2'] // 配列として渡すことで複数の値をリクエストパラメータとして送信 } }); if (!response.error) { response.data.close(); } client.close();
- POST(application/json)を送信
var client = new HttpClient(); var response = client.post('https://www.example.com', { headers: { 'Content-Type': 'application/json; charset=UTF-8' // Content-Type: application/json, 文字コード:UTF-8 でリクエストを送信します }, body: ImJson.toJSONString({ // JSON文字列をリクエストとして送信します。 'api_key': 'my api key', 'my_value': 'my value' }) }); if (!response.error) { response.data.close(); } client.close();
- POST(multipart/form-data)を送信
var client = new HttpClient(); var response = client.post('https://www.example.com', { // 「Content-Type: multipart/form-data」ヘッダーは自動で付与されます body: { text_part1: 'テキスト1', text_part2: ['テキスト2', 'text/plain'], // [テキスト, Content-Type] の形式で指定できます text_part3: ['テキスト3', 'text/plain; charset=UTF-8'], // [テキスト, Content-Type] の形式で指定できます binary_part1: new PublicStorage('test1.bin'), // Storage インスタンスを渡せます binary_part2: new PublicStorage('test2.bin').openAsBinary(), // ByteReader インスタンスを渡せます binary_part3: [new PublicStorage('test3.bin'), 'application/octet-stream', 'test3.bin'], // [ストレージ, Content-Type, ファイル名] の形式で指定できます binary_part4: new File('/tmp/test4.bin') // File インスタンスも渡せます }, multipart: true // マルチパートリクエスト時にこのフラグを true に設定してください }); if (!response.error) { response.data.close(); } client.close();
- Cookieを設定
var client = new HttpClient(); client.cookieStore = [ // クッキーを設定しセッションを維持 { name: 'JSESSIONID', value: 'abcdefghijklmnopqrstu', domain: 'localhost', path: '/', version: 0 } ]; var response = client.get('http://localhost:8080/imart/home'); if (!response.error) { response.data.close(); } client.close(); Debug.browse(client.cookieStore); // リクエスト送信後のクッキーを表示
var httpClient = { cookieStore : HttpClientCookie[] // クッキーストア。 }
コンストラクタの概要
HttpClient (Object [parameters] ) コンストラクタ。HttpClient を作成します。 |
プロパティの概要
型 | プロパティ名 | アクセス権 |
---|---|---|
HttpClientCookie[] | cookieStore クッキーストア。 |
通常
|
メソッドの概要
返却値の型 | メソッド名 |
---|---|
Boolean | close () 関連するすべてのリソースを解放します。 |
HttpClientResult | doDelete (String url , Object [parameters] ) DELETE リクエストを実行します。 |
HttpClientResult | get (String url , Object [parameters] ) GET リクエストを実行します。 |
HttpClientResult | head (String url , Object [parameters] ) HEAD リクエストを実行します。 |
HttpClientResult | options (String url , Object [parameters] ) OPTIONS リクエストを実行します。 |
HttpClientResult | patch (String url , Object [parameters] ) PATCH リクエストを実行します。 |
HttpClientResult | post (String url , Object [parameters] ) POST リクエストを実行します。 |
HttpClientResult | put (String url , Object [parameters] ) PUT リクエストを実行します。 |
コンストラクタの詳細
HttpClient (Object [parameters] )
コンストラクタ。HttpClient を作成します。
以下のようにして、パラメータを指定してください。 var client = new HttpClient({ 'connection-request-timeout-millis': 30 * 1000, // 省略可 'connect-timeout-millis': 30 * 1000, // 省略可 'socket-timeout-millis': 30 * 1000, // 省略可 'redirects-enabled': true, // 省略可 'max-redirects': 10, // 省略可 'ignore-ssl-errors': true // 省略可 });
パラメータ
|
プロパティの詳細
HttpClientCookie[] cookieStore
通常
クッキーストア。
|
メソッドの詳細
Boolean close ()
関連するすべてのリソースを解放します。
返却値
|
HttpClientResult doDelete (String url , Object [parameters] )
DELETE リクエストを実行します。
パラメータ
返却値
|
HttpClientResult get (String url , Object [parameters] )
GET リクエストを実行します。
パラメータ
返却値
|
HttpClientResult head (String url , Object [parameters] )
HEAD リクエストを実行します。
パラメータ
返却値
|
HttpClientResult options (String url , Object [parameters] )
OPTIONS リクエストを実行します。
パラメータ
返却値
|
HttpClientResult patch (String url , Object [parameters] )
PATCH リクエストを実行します。
パラメータ
返却値
|
HttpClientResult post (String url , Object [parameters] )
POST リクエストを実行します。
パラメータ
返却値
|
HttpClientResult put (String url , Object [parameters] )
PUT リクエストを実行します。
パラメータ
返却値
|