ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

matlab.net.http.HTTPOptions クラス

パッケージ: matlab.net.http

HTTP メッセージの交換を制御するオプション

説明

HTTPOptions クラスは、HTTP 要求メッセージのオプションを作成するために使用します。このオプションを使用して、複数の要求で一定のオプションを指定します。

作成

説明

obj = matlab.net.http.HTTPOptions は既定のプロパティ値で HTTP オプションを作成します。

obj = matlab.net.http.HTTPOptions(Name,Value) は 1 つ以上の名前と値のペアの引数で指定された追加のプロパティを使用して、HTTP オプションを作成します。Name はプロパティ名で、Value は対応する値です。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。未指定のプロパティは既定値に設定されます。

プロパティ

すべて展開する

認証に資格情報を使用するかどうか。true または false として指定します。

Authenticate が true の場合、サーバーまたはプロキシで要求される、サポートされる認証メソッドを実装します。認証は、MATLAB® Web 設定Credentials プロパティとプロキシのユーザー名およびパスワードが設定されている場合、これに基づきます。MATLAB は Basic および Digest 認証のみをサポートします。

以下の条件のいずれかに該当する場合、応答メッセージにはサーバーまたはプロキシの認証チャレンジが含まれます。

  • Authenticate が false である。

  • この要求に適切な Credentials プロパティが見つからない。

  • 認証が失敗した。

属性:

GetAccess
public
SetAccess
public

データ型: logical

ルート証明書のファイル名。証明書を含むファイルの場所を示す string または文字ベクトルとして指定します。ファイルは、Privacy-Enhanced Mail (PEM) 形式です。場所は、現在のフォルダー内、MATLAB パス上のフォルダー内またはファイルへの絶対パスか相対パスでなければなりません。値 'default' を指定した場合、CertificateFilename は、MATLAB に付属の証明書ファイルのパスに設定されます。パスを判別するには、空の weboptions または HTTPOptions オブジェクトを作成し、CertificateFilename の既定値を確認します。

HTTPS 接続を要求した場合、サーバーからの証明書が PEM ファイル内の認証機関証明書に対して検証されます。標準の HTTPS メカニズムは、この検証を使用してサーバー証明書のシグネチャと証明書チェーン全体を検証します。検証が失敗すると、接続は許可されません。サーバーの証明書が、サーバーへのアクセスに使用する URI と一致しない場合は、matlab.net.http.RequestMessage を作成し、matlab.net.http.HTTPOptions.VerifyServerName プロパティを false に設定することで、検証を無効にできます。このオプションは、対象のサーバーと直接通信している確信がある場合に使用してください。

証明書を rootcerts.pem に追加するには、ファイルを作業フォルダーにコピーし、ファイルを編集し、証明書をそれに追加します。PEM ファイルは、容易に変更できる ASCII ファイルです。HTTPS 接続のセキュリティはこのファイルの信頼性に依存するため、このファイルを適切に保護してください。MATLAB は証明書または証明書ファイルを管理しませんが、PEM ファイルを管理するためのサードパーティ製のツールがあります。

CertificateFilename が空の場合、MATLAB は、サーバーの証明書ドメインがサーバーのホスト名と一致するかどうか、それが期限切れでないかを確認します。シグネチャは検証されません。

CertificateFilename は、証明書の欠落または期限切れが原因で接続を確立できない場合にのみ、空 ('') に設定します。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

サーバーの初期接続までの待機時間 (秒)。整数として指定します。既定値は 10 秒です。タイムアウト期間が超過すると ConnectTimeout がエラーをスローします。タイムアウトを無効にするには、ConnectTimeoutInf に設定します。

ConnectTimeout は、サーバーへの接続試行が完了するのを待ち、エラーをスローするまでの時間を決定します。このタイムアウトは、完全な応答を受信するまでの時間は制限しません。

一部のオペレーティング システムでは、タイムアウトの最大値がシステムによって適用されます。このタイムアウトは、ConnectTimeout の値が最大値より大きい場合でも有効です。たとえば、Windows® 10 では、このタイムアウトは 21 秒です。

属性:

GetAccess
public
SetAccess
public

ResponseMessage でサーバーから受信した生のペイロードを処理する方法。true または false として指定します。

ConvertResponse が true の場合

  • ContentConsumer が指定されると、さらに処理するために uint8 ペイロードが ContentConsumer に渡されます。

  • それ以外の場合、MATLAB は MessageBody.Payload プロパティのペイロードを、応答メッセージの Content-Type に基づいて MATLAB データに変換します。変換ルールについては、Data プロパティを参照してください。変換が正常に行われると、Data には変換されたデータが含まれ、Payload が空になります。

ConvertResponse が false の場合、指定された ContentConsumer は無視され、動作は Content-Type が文字データを指定するかどうかによって異なります。

  • Content-Type に明示的または既定の charset 属性が含まれる場合、ペイロードはテキストに変換され、これ以上処理されずに Data に格納されます。

  • Content-Type に文字データが指定されていない場合または charset が含まれない場合、MATLAB は Content-Type をサポートせず、Data に生の uint8 ペイロードが含まれます。

SavePayload プロパティも true に設定した場合を除き、すべての場合において Payload プロパティは削除されます。

メッセージがエンコード (圧縮) されて、次のいずれかだった場合、ConvertResponse は無視されます。

  • デコードが失敗した

  • DecodeResponse プロパティが false である

属性:

GetAccess
public
SetAccess
public

データ型: logical

圧縮データをデコードするかどうか。true または false として指定します。デコードとは、サーバーから圧縮 (エンコードされた) データが返されたときに応答ペイロードを解凍 (デコード) することです。デコードは、Content-Type フィールドに基づいて変換前に行われます。

メッセージは、圧縮アルゴリズムを指定する Content-Encoding フィールドがある場合にエンコードされます。MATLAB はコンテンツ コーディング値 gzipx-gzip および deflate をサポートします。値 identity はエンコードがないことを意味します。これは Content-Encoding フィールドのないメッセージと等価です。MATLAB で Content-Encoding タイプがサポートされない場合、DecodeResponse が true であってもデコードは行われません。

DecodeResponse が false でデータがエンコードされていると、次のようになります。

  • MessageBody.Payload プロパティにエンコードされていない生のペイロードが含まれる。

  • MessageBody.Data プロパティが空のままになる。

  • ConvertResponse プロパティの設定にかかわらず、変換が行われない。

属性:

GetAccess
public
SetAccess
public

データ型: logical

認証資格情報。matlab.net.http.Credentials オブジェクトのベクトルとして指定します。Credentials は、Authenticate プロパティが true の場合にのみ使用されます。

セッション中に同じサーバーに複数回アクセスする場合、パフォーマンスを最大限にするために各要求に同じ Credentials ベクトルまたは同じ HTTPOptions オブジェクトを指定します。Credentials には後続の認証を高速化するキャッシュされた情報が含まれます。

属性:

GetAccess
public
SetAccess
public

リダイレクトの許容数。任意の要求に対して、整数として指定します。リダイレクトの既定数は 20 です。リダイレクトを無効にするには 0 に設定します。

MaxRedirects が非ゼロの場合、各リダイレクト応答でサーバーから受信したクッキーは、リダイレクトされるメッセージにコピーされます。MaxRedirects の後、応答メッセージには次のリダイレクト メッセージが含まれます。

属性:

GetAccess
public
SetAccess
public

進行状況モニター ハンドラー。matlab.net.http.ProgressMonitor オブジェクトへの関数ハンドルとして指定します。UseProgressMonitor が true の場合、MATLAB は関数 ProgressMonitor を呼び出して転送の進行状況を報告します。UseProgressMonitor が false の場合、または ProgressMonitorFcn が空の場合、進行状況は報告されません。

属性:

GetAccess
public
SetAccess
public

データ型: function_handle

プロキシ サーバーのアドレス。matlab.net.URI オブジェクト、または host:port または //host:port 形式の string として指定します。

ProxyURIUseProxy プロパティが true の場合にのみ使用されます。ProxyURI は、MATLAB Web 設定で指定されたプロキシと Windows システム設定で設定されたプロキシをオーバーライドします。

属性:

GetAccess
public
SetAccess
public

ペイロードを保存するかどうか。true または false として指定します。ペイロードはサーバーとの間で送受信された生のバイトで、MessageBody.Payload プロパティに保存されます。

要求メッセージでは、SavePayloadtrue に設定するとデータの変換後にペイロードが保存されます。応答メッセージでは、バイトは変換前に保存されます。

SavePayload はデバッグ ツールとして使用します。たとえば、サーバーが要求の本文を処理できない場合、あるいは応答の本文を MATLAB タイプに変換できない場合などです。ペイロードは少なくとも変換済みデータと同じサイズであるため、SavePayloadtrue に設定すると、膨大なメモリ容量を消費する可能性があります。

応答ペイロードを変換せずに取得するには、ConvertResponse プロパティを false に設定し、代わりに MessageBody.Data を読み取ります。

メッセージの処理中に HTTPException が発生すると、障害時点までに受信したペイロードは HTTPException.History(end).Response.Body.Payload にあります。

RequestMessage.BodyContentProvider オブジェクトの場合、MATLAB はプロバイダーの変換されたデータを Body.Payload に保存します。

属性:

GetAccess
public
SetAccess
public

データ型: logical

進行状況を表示するかどうか。true または false として指定します。UseProgressMonitortrue に設定し、ProgressMonitorFcn プロパティで指定される関数を使用して転送の進行状況を報告します。

属性:

GetAccess
public
SetAccess
public

データ型: logical

プロキシを使用するかどうか。true または false として指定します。

UseProxy が true の場合、MATLAB は次のプロキシのうち最初に該当するものを選択します。

  • ProxyURI プロパティの値 (ある場合)。

  • MATLAB Web 設定で指定されたプロキシ (指定されている場合)。

  • システム設定で指定されたプロキシ (Windows のみ)。

次のいずれかが true の場合、すべての要求はプロキシなしで送信先 URI に直接送信されます。

  • UseProxy が false である。

  • UseProxy が true であるが、ProxyURI が空で、設定されているプロキシがない。

UseProxy が true の場合、MATLAB はメッセージをプロキシへ自動的に迂回させます。

属性:

GetAccess
public
SetAccess
public

データ型: logical

サーバー名が証明書と一致するかどうか。true または false として指定します。

https プロトコルを使用したセキュリティで保護された接続では、MATLAB は証明書内のサーバー名が、要求された URI、または最後にリダイレクト要求された URI の Host プロパティと一致するかどうかを検証します。この検証により、対象のサーバーと通信していることが確認できます。サーバーの証明書が、サーバーへのアクセスに使用する URI と一致しない場合にこの検証を無効にするには、このプロパティを false に設定します。たとえば、IP アドレスまたは "localhost" を使用してサーバーにアクセスする場合や、対象のサーバーと直接通信している確信がある場合などです。

属性:

GetAccess
public
SetAccess
public

データ型: logical

すべて折りたたむ

接続タイムアウトを 20 秒に増やします。

変数 url で指定されたサーバーに送信される、変数 request で指定された要求メッセージの既定の接続タイムアウト オプションを変更します。

options = matlab.net.http.HTTPOptions('ConnectTimeout',20);
response = request.send(url,options);

R2016b で導入