メインコンテンツまでスキップ
バージョン: 次へ

HTTPAgent

HTTPAgent クラスは、HTTPRequest クラス を使ったサーバー接続の永続性と再利用を管理するためのHTTPAgent オブジェクト を操作するためのものです。

HTTPAgent クラスは、4D クラスストアにて提供されています。 HTTPAgent オブジェクト は、4D.HTTPAgent.new() 関数で新規作成できます。

HTTPリクエストに関連付けられたエージェントがない場合、デフォルト値を持つグローバルエージェントが使用されます。 デフォルトエージェントは、基本的なユースケースに適した最もシンプルな HTTPエージェントです。 接続の設定 (keep-alive設定、タイムアウト、TLS/SSL設定など) について、HTTPリクエスト毎ではなくエージェントレベルで、より細かい制御をおこなうために、カスタムエージェントの使用が推奨されます。

履歴
リリース内容
20 R6クラスを追加

HTTPAgent オブジェクト

HTTPAgent オブジェクトは共有可能なオブジェクトです。

HTTPAgent オブジェクトは次のプロパティや関数を提供します:

options : Object
HTTPAgent が現在使用しているオプション
requestsCount : Integer
HTTPAgent によって現在管理されているリクエストの数
freeSocketsCount : Integer
HTTPAgent に関連付けられた maxSockets に対する空きソケット数
tip

HTTPAgent オブジェクトは共有可能なため、 シングルトンクラスに追加すれば、同じサーバーへのすべてのリクエストについて同じエージェントを使用できます。

4D.HTTPAgent.new()

4D.HTTPAgent.new( { options : Object } ) : 4D.HTTPAgent

履歴
リリース内容
21Support of storeCertificateName property
引数説明
optionsObject->HTTPAgent のデフォルトのオプション
戻り値4D.HTTPAgent<-新規 HTTPAgent オブジェクト

説明

4D.HTTPAgent.new() 関数は、options 引数で定義される設定で共有可能な HTTPAgent オブジェクトを作成し、4D.HTTPAgent オブジェクトを返します。

返された HTTPAgentオブジェクト は、HTTPサーバーへの接続をカスタマイズするのに使用します。

options 引数

options に渡すオブジェクトは、次のプロパティを持つことができます (すべてのプロパティが任意です):

HTTPAgent のオプションは HTTPRequest のオプション と統合されます (HTTPRequest オプションが優先されます)。特定のエージェントが定義されていない場合、グローバルエージェントが使用されます。

プロパティデフォルト説明
certificatesFolderFolderundefined (デフォルト値は HTTPRequest.new() 参照)当該エージェントを使ったリクエストに使用するクライアント証明書フォルダー. Can be overriden by "storeCertificateName" (see below)
keepAliveBooleantrue当該エージェントについて keep-alive を有効にします
maxSocketsInteger65535サーバーあたりの最大ソケット数
maxTotalSocketsInteger65535エージェントの最大ソケット数
minTLSVersionTextundefined (デフォルト値は HTTPRequest.new() 参照)当該エージェントを使ったリクエストに設定する TLS の最小バージョン
protocolTextundefined (デフォルト値は HTTPRequest.new() 参照)当該エージェントを使ったリクエストに使用されるプロトコル
storeCertificateNameTextundefined(Windows only) Name of the OS certificate store (e.g. "LocalMachine") from where to use certificates instead of those in the certificates folder for the requests using the agent. If the certificate store is not found, an error is returned. For more information, see this blog post.
timeoutRealundefined定義されている場合、未使用のソケットが閉じられるまでのタイムアウト
validateTLSCertificateBooleanundefined (デフォルト値は HTTPRequest.new() 参照)当該エージェントを使用したリクエストについて、TLS 証明書の検証をおこなうか

同じエージェントを使って複数のサーバーにリクエストすることができます。 その場合各サーバーは、同じエージェントオプションを使用した独自の接続プールを持ちます。

例題

HTTPAgent の作成:

var $options:={}
$options.maxSockets:=5 //5 is the maximum number of sockets per server
$options.maxTotalSockets:=10 //10 is the maximum number of sockets for the agent
$options.validateTLSCertificate:=True //To validate the server's certificate

var $myAgent:=4D.HTTPAgent.new($options)

任意の都市の現地時間を確認するリクエストを送信します:

var $options:={}
$options.method:="GET"
$options.agent:=$myAgent
var $myRequest:=4D.HTTPRequest.new("http://worldtimeapi.org/api/timezone/Europe/Paris"; $options)

HTTPRequest に関連付けられたエージェントがない場合、デフォルト値を持つグローバルエージェントが使用されます。

.params

options : Object

説明

.params プロパティオブジェクトは、HTTPAgent が現在使用しているオプションを格納します。

.requestsCount

requestsCount : Integer

説明

.requestsCount プロパティは、HTTPAgent によって現在管理されているリクエストの数を格納します。

.freeSocketsCount

freeSocketsCount : Integer

説明

.freeSocketsCount プロパティは、HTTPAgent に関連付けられた maxSockets に対する空きソケット数を格納します。