Main Content

complete

クラス: matlab.net.http.RequestMessage
名前空間: matlab.net.http

HTTP 要求メッセージを送信せずに検証して完了

説明

[completedrequest,target] = complete(request,uri) は、RequestMessage.send メソッドと同様にメッセージ ヘッダー フィールドを追加して検証し、データを変換しますが、メッセージは送信しません。complete は、既定の HTTPOptions オブジェクトによって要求の完了方法と検証方法が決定されることを前提としています。

complete メソッドは、デバッグ目的で要求メッセージの内容を調べるために使用します。

Header プロパティと RequestLine プロパティを埋めて有効化するために、このメソッドは requestCompleted プロパティを無視します。このメソッドは常に変更した completedrequest を返します。request が完了しない場合、メソッドによりエラーが発生します。この動作を使用して、手動で完了した要求が有効であるかどうかを判断できます。

Completed が設定されていない場合、このメソッドは常に request.BodyData を変換し、その結果を completedrequest.Body.Payload に保存します。以前の Payload の内容は上書きされます。これは、completedrequest.Body 内の DataPayload の両方に値が含まれることを意味します。この動作は、HTTPOptions.SavePayload が設定されない限り Payload を保存しない send の動作とは異なります。メッセージに大量のデータが含まれている場合、メモリ使用量と変換時間が要因になる可能性があります。

ただし、request.BodyContentProvider が含まれる場合、complete はデータを作成するためにプロバイダーを呼び出しません。completedrequest.Body には同じ ContentProvider が含まれます。

[completedrequest,target] = complete(request,uri,options) は、要求メッセージの検証と完了に関する追加オプションを提供します。

検証を繰り返すコストを回避するために completedrequest を送信する場合は、同じ options を使用して、uri ではなく target に送信します。send メソッドが追加する Date などの時間依存のヘッダー フィールドは、completedrequest を使用した再送信時に更新されません。

入力引数

すべて展開する

要求メッセージ。matlab.net.http.RequestMessage オブジェクトとして指定します。

メッセージの送信先。matlab.net.URI オブジェクト、またはコンストラクターで受け入れ可能な string または文字ベクトルとして指定します。

要求メッセージと応答メッセージを処理するための追加オプション。matlab.net.http.HTTPOptions オブジェクトとして指定します。

出力引数

すべて展開する

完了して検証された要求。matlab.net.http.RequestMessage オブジェクトとして返されます。Completed プロパティは true です。

完了した URI。matlab.net.URI オブジェクトとして返されます。

すべて展開する

架空の Web サイトへの要求メッセージを作成します。次に、要求を送信せずに検証して完了します。

request = matlab.net.http.RequestMessage();
url = 'myschool.edu/campus.jpg';
options = matlab.net.http.HTTPOptions('SavePayload',true);
[request,url] = complete(request,url,options);
show(request)
GET /campus.jpg HTTP/1.1
Host: myschool.edu
User-Agent: MATLAB/9.0.0.366741 (R2016b)
Date: Wed, 13 Jul 2016 17:21:08 GMT
Connection: close

MATLAB® はシステムに関する User-Agent 値および Date 値を表示します。

更新された URL を表示します。

string(url)
ans = http://myschool.edu/campus.jpg

制限

  • 完了した要求では、Authenticate プロパティが options に設定される場合であっても、サーバーまたはプロキシへの認証で必要になる可能性のある認証ヘッダー フィールドは追加されません。メッセージを送信せずにサーバーが要求するものを判別することはできない可能性があります。認証交換で送信された内容を確認するには、send メソッドから返された completedrequest 引数または history 引数を調べます。

ヒント

  • 同じ要求メッセージを繰り返し送信するには completedrequest を送信します。それ以外の場合、request を送信すると MATLAB がメッセージを繰り返し検証します。また、必ず target を URI として指定し、同じ options 入力引数を指定してください。send メソッドが追加する Date などの時間依存ヘッダー フィールドは、completedrequest の送信時に更新されません。

  • データを変換せずにメッセージを完了するには、complete メソッドを呼び出す前に Completed プロパティを true に設定します。Completed が true で request.BodyMessageBody オブジェクトの場合、complete メソッドでは、request.Body.Payload の現在の値が空であっても、それが目的の値であることを前提とします。

    この動作は send メソッドと異なります。request.Body.Payload が空の場合、Completed が true であっても、send は空でない Body.Data 値を変換して送信します。

バージョン履歴

R2016b で導入