オブジェクトHTTPクライアント
HttpClient は、HTTP クライアント機能用に設計されたクラス ライブラリであり、基本的な HTTP/HTTPS リクエスト、プロキシ アクセス、Cookie 管理、その他の機能を提供します。
HttpClient を使用すると、Web ページに簡単にアクセスして操作できます。Web ページ上のソース コードを出力する簡単な例を次に示します。
1
2
3
4
5const http = require('http');
const res = http.get('http://www.example.com/');
console.log(res.body.readAll().toString());
この例では、require によって導入されますhttpモジュールを作成してから使用しますhttp.getget リクエストを開始します。urlパラメータはリクエストされた URL を指定します。なぜならhttp.getメソッドは、HttpResponseオブジェクトであるため、リクエストによって返された本文のコンテンツに body プロパティを通じてアクセスし、toString メソッドを通じて文字列に変換できます。
要求されたときurlではなくhttps型ですhttpタイプの場合、コードを変更するだけで済みますhttphttps に変更するだけです。
1
2
3
4
5const http = require('http');
const res = http.get('https://www.example.com/');
console.log(res.body.readAll().toString());
さらに、POST リクエストを直接開始し、HttpClient を通じて User-Agent を設定する例もあります。
1
2
3
4
5
6
7
8
9
10
11const http = require('http');
const httpClient = new http.Client();
httpClient.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36';
const res = httpClient.post('http://www.example.com/post', {
json: {
name: 'fibjs',
version: '0.31.0'
}
});
console.log(res.body.readAll().toString());
この例では、HttpClient オブジェクト httpClient が最初に作成され、その userAgent がブラウザの User-Agent に設定されます。次に、post メソッドを通じて post リクエストを開始します。このリクエストでは、パラメータの名前とバージョンによってリクエストの主な内容が指定されます。最後に戻り値の本体内容を出力します。
相続関係
コンストラクタ
HttpClient
HttpClient コンストラクター、新しい HttpClient オブジェクトを作成します
1new HttpClient();
メンバーのプロパティ
cookies
NA配列、戻り値httpクライアントHttpCookieオブジェクトリスト
1readonly NArray HttpClient.cookies;
timeout
整数、クエリおよびタイムアウト単位の設定 (ミリ秒)
1Integer HttpClient.timeout;
enableCookie
ブール値、Cookie 機能スイッチ、デフォルトで有効
1Boolean HttpClient.enableCookie;
autoRedirect
ブール値、自動リダイレクト機能スイッチ、デフォルトで有効
1Boolean HttpClient.autoRedirect;
enableEncoding
ブール値、自動解凍機能スイッチ、デフォルトで有効
1Boolean HttpClient.enableEncoding;
maxHeadersCount
整数。リクエスト ヘッダーの最大数をクエリおよび設定します。デフォルトは 128 です。
1Integer HttpClient.maxHeadersCount;
maxHeaderSize
整数。リクエスト ヘッダーの最大長をクエリおよび設定します。デフォルトは 8192 です。
1Integer HttpClient.maxHeaderSize;
maxBodySize
整数。本文の最大サイズをクエリおよび設定します (MB 単位)。デフォルトは -1 で、サイズ制限はありません。
1Integer HttpClient.maxBodySize;
userAgent
文字列、クエリ、セットhttpリクエスト内のブラウザ識別子
1String HttpClient.userAgent;
poolSize
整数。キープアライブ キャッシュ接続の最大数をクエリおよび設定します。デフォルトは 128 です。
1Integer HttpClient.poolSize;
poolTimeout
整数。キープアライブ キャッシュ接続タイムアウトをクエリおよび設定します。デフォルトは 10000 ミリ秒です。
1Integer HttpClient.poolTimeout;
http_proxy
文字列、クエリ、セットhttpエージェント、サポートのリクエストhttp/https/socks5 プロキシ
1String HttpClient.http_proxy;
https_proxy
文字列、クエリおよび設定 https リクエスト プロキシ、サポートhttp/https/socks5 プロキシ。設定されていないか空に設定されている場合、http_proxy が再利用されます。
1String HttpClient.https_proxy;
sslVerification
整数、https に接続する際の証明書検証モードのクエリと設定、参照sslモジュールの VERIFY_* 定数。デフォルト値は次のとおりです。ssl.verification
1Integer HttpClient.sslVerification;
メンバー関数
setClientCert
デフォルトのクライアント証明書を設定する
1
2HttpClient.setClientCert(X509Cert crt,
PKey key);
呼び出しパラメータ:
request
送信http指定されたストリーム オブジェクトをリクエストし、結果を返します
1
2HttpResponse HttpClient.request(Stream conn,
HttpRequest req) async;
呼び出しパラメータ:
- conn:Stream、リクエストを処理するストリーム オブジェクトを指定します。
- req:HttpRequest、送信されますHttpRequest物体
返される結果:
- HttpResponse、サーバー応答を返します
送信http指定されたストリーム オブジェクトをリクエストし、結果を返します
1
2
3HttpResponse HttpClient.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
呼び出しパラメータ:
- conn:Stream、リクエストを処理するストリーム オブジェクトを指定します。
- req:HttpRequest、送信されますHttpRequest物体
- response_body:SeekableStream、response.bodyのストリームを指定します。
返される結果:
- HttpResponse、サーバー応答を返します
指定されたリクエストurl、結果を返します
1
2
3HttpResponse HttpClient.request(String method,
String url,
Object opts = {}) async;
呼び出しパラメータ:
- method: 文字列、指定しますhttpリクエストメソッド:GET、POSTなど
- url: 文字列、指定しますurl、完全なホストを含む必要がありますurl
- opts: オブジェクト、追加情報を指定します
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {},
"response_body": SeekableStream // specify the response.body stream
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
GET メソッドを使用して、指定された内容をリクエストします。url、 request("GET", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.request(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
指定されたリクエストオプションurl、結果を返します
1HttpResponse HttpClient.request(Object opts) async;
呼び出しパラメータ:
- opts: オブジェクト、追加情報を指定します
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
get
GET メソッドを使用して、指定された内容をリクエストします。url、 request("GET", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.get(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
post
POST メソッドを使用して、指定されたリクエストをリクエストしますurl、 request("POST", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.post(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
del
DELETE メソッドを使用して、指定された内容をリクエストします。url、 request("DELETE", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.del(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
put
PUT メソッドを使用して、指定された内容をリクエストします。url、 request("PUT", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.put(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
patch
PATCH メソッドを使用して、指定されたurl、 request("PATCH", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.patch(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
head
HEAD メソッドを使用して、指定された内容をリクエストします。url、 request("PATCH", ...) と同等の結果を返します。
1
2HttpResponse HttpClient.head(String url,
Object opts = {}) async;
呼び出しパラメータ:
返される結果:
- HttpResponse、サーバー応答を返します
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
その中には身体、json、パックを同時に出現させることはできません。デフォルトは {} で、追加情報は含まれません。
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String HttpClient.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value HttpClient.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します