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
のように、複数の名前と値のペアの引数を任意の順番で指定できます。未指定のプロパティは既定値に設定されます。
プロパティ
Authenticate
— 認証に資格情報を使用するかどうか
true
(既定値) | false
認証に資格情報を使用するかどうか。true
または false
として指定します。
Authenticate
が true の場合、サーバーまたはプロキシで要求される、サポートされる認証メソッドを実装します。認証は、MATLAB® Web 基本設定で Credentials
プロパティとプロキシのユーザー名およびパスワードが設定されている場合、これに基づきます。MATLAB における認証のサポートの詳細については、サーバー認証を参照してください。
以下の条件のいずれかに該当する場合、応答メッセージにはサーバーまたはプロキシの認証チャレンジが含まれます。
Authenticate
が false である。この要求に適切な
Credentials
プロパティが見つからない。認証が失敗した。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
CertificateFilename
— ファイル名
'default'
(既定値) | string | 文字ベクトル
ファイル名。ルート証明書を含むファイルの名前と場所を示す string スカラーまたは文字ベクトルとして指定します。ファイルは Privacy-Enhanced Mail (PEM) 形式でなければなりません。場所は、現在のフォルダー内、MATLAB パス上のフォルダー内またはファイルへの絶対パスか相対パスでなければなりません。このファイルに含まれている証明書は HTTPS 接続用のサーバー証明書を検証するために使用されます。HTTPS 接続のセキュリティはこのファイルの信頼性に依存するため、このファイルを適切に保護してください。MATLAB は証明書または証明書ファイルを管理しませんが、PEM ファイルの管理に使用可能なサードパーティ製のツールがあります。
既定では、オプションが指定されていない場合、MATLAB はシステムによって提供された証明書ストアを使用してサーバー証明書を検証します。これも、CertificateFilename
が 'default'
に設定されている場合の動作です。
CertificateFilename
が空 (''
) の場合、サーバー証明書の検証がオフになっています。MATLAB は、サーバー証明書のドメイン名がサーバーのドメイン名と一致することのみを検証します。
'default'
の使用時にサーバー証明書の検証に失敗する場合、システム ブラウザーを使用して接続をチェックします。
接続に関する問題が発生する場合は、次を検討してください。
サーバー証明書の期限が切れているか取り消されている場合、Web サイトの所有者またはサーバー管理者に連絡してください。
ルート CA 証明書がない場合、次のいずれかを選択できます。
CertificateFilename
で示されたファイルにルート CA 証明書を追加する。CertificateFilename
を空 (''
) に設定することで、証明書の検証を無効にする。
サーバー証明書のドメイン名とサーバーのドメイン名が一致していない場合、
matlab.net.http.RequestMessage
オブジェクトを作成してmatlab.net.http.HTTPOptions.VerifyServerName
プロパティをfalse
に設定することでこの検証を無効にできます。
メモ
こうしたオプションは一時的な回避方法であり、サーバー証明書の検証が失敗する根本原因を、有効なまたは正しいサーバー証明書を使用して解決するよう強く推奨します。
属性:
GetAccess | public |
SetAccess | public |
データ型: char
| string
ConnectTimeout
— サーバーの初期接続までの待機時間 (秒)
10 (既定値) | 非負の実数 | Inf
サーバーの初期接続までの待機時間 (秒)。非負の実数として指定します。プロキシを使用する場合、タイムアウトはプロキシへの接続に適用されます。それ以外の場合は、サーバーへの接続に適用されます。
既定値は 10 秒です。タイムアウト期間が超過すると ConnectTimeout
がエラーをスローします。タイムアウトを無効にするには、ConnectTimeout
を Inf
に設定します。
ConnectTimeout
は、エラーをスローする前にサーバーまたはプロキシへの接続試行が完了するまで待機する時間を決定します。このタイムアウトは、完全な応答を受信するまでの時間は制限しません。
プロキシ経由でサーバーに要求を送信する場合は、ResponseTimeout を使用して待機時間を制限することを検討してください。
一部のオペレーティング システムでは、タイムアウトの最大値がシステムによって適用されます。このタイムアウトは、ConnectTimeout
の値が最大値より大きい場合でも有効です。たとえば、Windows® 10 では、このタイムアウトは 21 秒です。
属性:
GetAccess | public |
SetAccess | public |
ConvertResponse
— サーバーから生のペイロードを処理する方法
true
(既定値) | false
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
DataTimeout
— データ パケット間で待機する秒数
Inf
(既定値) | 非負の実数
ネットワーク上のデータ パケット間で待機する秒数。非負の実数として指定します。既定値は Inf
で、タイムアウトなしを意味します。このタイムアウトは最初の接続の確立後に適用され、低速である可能性があるサーバーとの通信で役立ちます。次に予測されるパケットの送受信を待機している間にこのタイムアウトを超えた場合、MATLAB は接続を閉じてエラーをスローします。この場合、部分データを取得するには matlab.net.http.HTTPException
の History
プロパティを使用します。
属性:
GetAccess | public |
SetAccess | public |
DecodeResponse
— 圧縮データをデコードするかどうか
true
(既定値) | false
圧縮データをデコードするかどうか。true
または false
として指定します。デコードとは、サーバーから圧縮 (エンコードされた) データが返されたときに応答ペイロードを解凍 (デコード) することです。デコードは、Content-Type フィールドに基づいて変換前に行われます。
応答は、圧縮アルゴリズムを指定する Content-Encoding フィールドがある場合にエンコードされます。MATLAB はコンテンツ コーディング値 gzip
、x-gzip
および deflate
をサポートします。値 identity
はエンコードがないことを意味します。これは Content-Encoding フィールドのないメッセージと等価です。MATLAB で Content-Encoding タイプがサポートされない場合、DecodeResponse
が true であってもデコードは行われません。
DecodeResponse
が false で、かつペイロードがエンコードされている場合、次のようになります。
MessageBody.Payload
プロパティにエンコードされていない生のペイロードが含まれる。MessageBody.Data
プロパティが空のままになる。ConvertResponse
プロパティの設定にかかわらず、変換が行われない。
圧縮データを処理できない ContentConsumer
を使用している場合は、ConvertResponse
も false に設定してコンシューマーの使用を抑制しない限り、圧縮応答に対してこの値を false に設定しないでください。MATLAB が提供するコンシューマーで、FileConsumer
と BinaryConsumer
のみが圧縮データを処理できます。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
Credentials
— 認証資格情報
matlab.net.http.Credentials
(既定値) | matlab.net.http.Credentials
オブジェクトのベクトル | 空
認証資格情報。1 つ以上の matlab.net.http.Credentials
オブジェクトとして指定します。既定値は、既定の matlab.net.http.Credentials
オブジェクトです。既定の Credentials
オブジェクトを使用して、Windows 上で Kerberos、NTLM などのスキームによる認証を許可します。これらのスキームでは、ユーザー名またはパスワードを指定する必要がありません。
Credentials
は、Authenticate
プロパティが true の場合にのみ使用されます。認証を実行するには、少なくとも 1 つの Credentials
オブジェクトを指定しなければなりません。Credentials
を空に設定すると、認証は実行されません。
セッション中に同じサーバーに複数回アクセスする場合、パフォーマンスを最大限にするために各要求に同じ Credentials
ベクトルまたは同じ HTTPOptions
オブジェクトを指定します。Credentials
には後続の認証を高速化するキャッシュされた情報が含まれます。
プロキシと共に使用する Credentials
を指定し、それらの Credentials
により [基本設定] ウィンドウの [Web の基本設定] で指定されている別のユーザー名とパスワードをオーバーライドする場合は、この HTTPOptions
オブジェクトの ProxyURI
プロパティにプロキシのホストとポートを指定するか、[基本設定] ウィンドウの [認証でプロキシを使用] オプションをオフにします。
属性:
GetAccess | public |
SetAccess | public |
KeepAliveTimeout
— サーバー接続を開いたままにする秒数
Inf
(既定値) | 0
最初の接続後にサーバー接続を開いたままにする秒数。0
または Inf
として指定します。このプロパティを使用して、同一の接続で複数の連続メッセージを送信できます。Inf
値 (既定) は、サーバーが可能な限り接続を開いたままにする持続的な接続を有効にします。0
値は、各メッセージの後で接続を閉じます。その他の値はサポートされません。
KeepAliveTimeout
プロパティは動作の成功に影響しません。MATLAB は、他のタイムアウトを超えない限り、サーバーからの予測された応答を取得するために常に十分に長い時間、接続を開いたままにします。ただし、0
値は、同じサーバーに多くの短いメッセージを送信するときのパフォーマンスに深刻な影響を与えることがあります。
属性:
GetAccess | public |
SetAccess | public |
MaxRedirects
— リダイレクトの許容数
20 (既定値) | 0 | 整数 | Inf
リダイレクトの許容数。任意の要求に対して、整数として指定します。リダイレクトの既定数は 20 です。リダイレクトを無効にするには 0 に設定します。無制限のリダイレクトを許可するには Inf
に設定します。
MaxRedirects
が非ゼロの場合、各リダイレクト応答でサーバーから受信したクッキーは、リダイレクトされるメッセージにコピーされます。MaxRedirects
の後、応答メッセージには次のリダイレクト メッセージが含まれます。
属性:
GetAccess | public |
SetAccess | public |
ProgressMonitorFcn
— 進行状況モニター ハンドラー
関数ハンドル | 空
進行状況モニター ハンドラー。matlab.net.http.ProgressMonitor
オブジェクトへの関数ハンドルとして指定します。UseProgressMonitor
が true の場合、MATLAB は関数 ProgressMonitor
を呼び出して転送の進行状況を報告します。UseProgressMonitor
が false の場合、または ProgressMonitorFcn
が空の場合、進行状況は報告されません。
属性:
GetAccess | public |
SetAccess | public |
データ型: function_handle
ProxyURI
— プロキシ サーバーのアドレス
空 (既定値) | matlab.net.URI
| string
プロキシ サーバーのアドレス。matlab.net.URI
オブジェクト、または host:port
または //host:port
形式の string として指定します。
ProxyURI
は UseProxy
プロパティが true の場合にのみ使用されます。ProxyURI
は、MATLAB Web 基本設定で指定されたプロキシと Windows システム設定で設定されたプロキシをオーバーライドします。
属性:
GetAccess | public |
SetAccess | public |
ResponseTimeout
— 初期応答を受信するまで待機する秒数
Inf
(既定値) | 非負の実数
要求の最後のパケットを送信した後、サーバーからの初期応答 (ヘッダー) を受信するまで待機する秒数。非負の実数として指定します。既定値は Inf
で、タイムアウトなしを意味します。このタイムアウトを超えた場合、MATLAB は接続を閉じてエラーをスローします。
プロキシ経由でサーバーに要求を送信するときに待機時間を制限するには、ResponseTimeout
を使用します。これは、ConnectTimeout
がプロキシ接続時間にのみ適用されるためです。
ResponseTimeout
は、weboptions
により設定される Timeout
プロパティと等価です。
属性:
GetAccess | public |
SetAccess | public |
SavePayload
— ペイロードを保存するかどうか
false
(既定値) | true
ペイロードを保存するかどうか。true
または false
として指定します。ペイロードはサーバーとの間で送受信された生のバイトで、MessageBody.Payload
プロパティに保存されます。
要求メッセージでは、SavePayload
を true
に設定するとデータの変換後にペイロードが保存されます。応答メッセージでは、バイトは変換前に保存されます。
SavePayload
はデバッグ ツールとして使用します。たとえば、サーバーが要求の本文を処理できない場合、あるいは応答の本文を MATLAB タイプに変換できない場合などです。ペイロードは少なくとも変換済みデータと同じサイズであるため、SavePayload
を true
に設定すると、膨大なメモリ容量を消費する可能性があります。
応答ペイロードを変換せずに取得するには、ConvertResponse
プロパティを false
に設定し、代わりに MessageBody.Data
を読み取ります。
メッセージの処理中に HTTPException
が発生すると、障害時点までに受信したペイロードは HTTPException.History(end).Response.Body.Payload
にあります。
RequestMessage.Body
が ContentProvider
オブジェクトの場合、MATLAB はプロバイダーの変換されたデータを Body.Payload
に保存します。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
UseProgressMonitor
— 進行状況を表示するかどうか
false
(既定値) | true
進行状況を表示するかどうか。true
または false
として指定します。UseProgressMonitor
を true
に設定し、ProgressMonitorFcn
プロパティで指定される関数を使用して転送の進行状況を報告します。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
UseProxy
— プロキシを使用するかどうか
true
(既定値) | false
プロキシを使用するかどうか。true
または false
として指定します。
UseProxy
が true の場合、MATLAB は次のプロキシのうち最初に該当するものを選択します。
ProxyURI
プロパティの値 (ある場合)。MATLAB Web 基本設定で指定されたプロキシ (指定されている場合)。
システム設定で指定されたプロキシ (Windows のみ)。
次のいずれかが true の場合、すべての要求はプロキシなしで送信先 URI に直接送信されます。
UseProxy
が false である。UseProxy
が true であるが、ProxyURI
が空で、基本設定で設定されているプロキシがない。
UseProxy
が true の場合、MATLAB はメッセージをプロキシへ自動的に迂回させます。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
VerifyServerName
— サーバー名が証明書と一致するかどうか
true
(既定値) | false
サーバー名が証明書と一致するかどうか。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 で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)