send
クラス: matlab.net.http.RequestMessage
名前空間: matlab.net.http
HTTP 要求メッセージの送信と応答の受信
構文
説明
[ は response,completedrequest,history] = send(request,uri)request メッセージを uri で指定された Web サービスに送信し、response がある場合はこれを返します。request.Method プロパティが指定されていない場合、send メソッドはプロパティを 'GET' に設定します。
既定では、send はメッセージのヘッダーと他の部分のセマンティクスの正確性を検証し、uri を完了します。また、メソッドは正しい形式の要求になるように必要なヘッダー フィールドを埋めます。request.Body が MessageBody であり、その Payload プロパティがまだ設定されていない場合、MessageBody.Data の説明と同じように、send は適切な変換関数を呼び出して任意の request.Body.Data を送信対象の HTTP ペイロードを表すバイト ベクトルに変換します。通常、'GET' 要求にデータは含まれませんが、RequestMethod に関係なくメソッドは Body を送信します。サーバーがその応答でデータを返し、consumer が指定されない場合、send はそのデータを MATLAB® データに変換し、response.Body.Data に保存します。データ変換の詳細については、MessageBody.Data を参照してください。
request.Body が ContentProvider の場合、MATLAB は送信対象のデータを取得するためにプロバイダーを呼び出します。
ヘッダーにメソッドが通常追加するフィールドが既に含まれている場合、send はフィールドに期待値があることを検証します。既定の動作を以下のようにオーバーライドできます。
何も確認せずにそのまま、またはヘッダーを変更してメッセージを送信するには、
request.Completed送信前にプロパティをtrueに設定します。completeメソッドを使用して要求を完了した場合は、completeに指定したuriとoptionsと同じ値を指定しなければなりません。そうしないと、予測できない結果が生じる可能性があります。Completedが設定されている場合でも、RequestLine内の未指定のフィールドは既定値で埋められます。sendメソッドでヘッダーをチェックして変更できるようにしても、sendまたはContentProviderによって追加される可能性がある特定のヘッダー フィールドの追加を抑制するには、そのフィールドを空の値 ([]) とともにrequest.Headerに追加します。たとえば、sendによって User-Agent ヘッダー フィールドが自動的に追加されます。この動作を希望しない場合は、ヘッダーにHeaderField('User-Agent')を追加してください。空の値をもつヘッダー フィールドはメッセージに含まれません。Host フィールドと Connection フィールドを抑制することはできません。与えられたヘッダー フィールドに
sendメソッドが追加する値をオーバーライドするには、メッセージを送信または完了する前に、そのフィールドのユーザー独自のインスタンスを追加します。ただし、ContentProviderによって追加される可能性があるヘッダー フィールドはこれによってオーバーライドされません。しかし、ヘッダー フィールドのタイプによっては、値が有効でない場合にsendでメッセージが拒否される可能性もあります。特定のフィールド値のチェックを妨げたり、ContentProviderによって追加されるフィールドをオーバーライドするには、目的の名前と値をもつヘッダーにmatlab.http.field.GenericFieldのフィールド タイプを追加します。sendまたはContentProviderのどちらも、GenericFieldヘッダーと同じ名前をもつどのヘッダー フィールドも追加しません。また、その正確性もチェックしません。変換せずに生のバイナリ データを送信するために、
uint8ベクトルをBody.DataまたはBody.Payloadのいずれかに挿入できます。唯一の違いは、Body.Data内のデータがメッセージ内の Content-Type フィールドを基準に変換される一方、Body.Payloadはそうではない点です。Body.Payloadが空の場合、Completedが既に設定されていても、sendは常に空でないBody.Dataを変換しようとします。変換ルールの詳細については、MessageBody.Dataを参照してください。
入力引数
出力引数
例
エラー処理
要求が受け入れられたかどうかを判別するために、常に response Status プロパティをチェックします。エラー条件は、次のとおりです。
MException— メッセージが適切な形式ではなく、完了できない。HTTPException— メッセージは完了したが、Web サービスが到達不能、またはoptionsで指定されたタイムアウト期間内に応答しない。responseのStatusプロパティ — Web サービスが応答して HTTP エラー ステータスを返す。sendは正常に戻り、Statusプロパティをサーバーから返されたエラーに設定する。
バージョン履歴
R2016b で導入