Main Content

matlab.net.http.MessageBody クラス

名前空間: matlab.net.http

HTTP メッセージの本文

説明

MessageBody オブジェクトには HTTP メッセージの本文が含まれています。要求メッセージでは、Body プロパティをデータ、またはデータを含む MessageBody オブジェクトに設定します。応答メッセージでは、このオブジェクトには受信したデータが含まれます。

メッセージ データは 2 つのプロパティで表されます。Payload プロパティには、ネットワークで送受信した生のバイトが含まれています。Data プロパティには、Payload が MATLAB® タイプとして含まれています。これら 2 つのプロパティのいずれかのみが設定されることがよくあります。

クラスの属性

Sealed
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

MessageBody オブジェクトには HTTP メッセージの本文が含まれています。要求メッセージでは、Body プロパティをデータ、またはデータを含む MessageBody オブジェクトに設定します。応答メッセージでは、このオブジェクトには受信したデータが含まれます。

メッセージ データは 2 つのプロパティで表されます。Payload プロパティには、ネットワークで送受信した生のバイトが含まれています。Data プロパティには、Payload が MATLAB タイプとして含まれています。これら 2 つのプロパティのいずれかのみが設定されることがよくあります。

プロパティ

すべて展開する

メッセージ データ。以下の MATLAB データ型のいずれかとして指定します。変換の詳細については、HTTP データ型の変換を参照してください。

  • uint8 ベクトル — 変換されない Data

  • 文字配列またはスカラー string — Content-Type ヘッダーのメディア タイプとその charset 属性に基づいて変換される Data

  • 構造体配列 — webread および webwrite を使用して JSON 文字列から、または JSON 文字列に変換される Data

  • イメージ — imread および imwrite を使用してイメージから、またはイメージに変換される Data

  • XML DOM — xmlread および xmlwrite を使用して string から、または string に変換される Data

  • オーディオ データ — audioread および audiowrite を使用して変換される Data

  • table — readtable および writetable を使用して変換される Data

  • 他のタイプの配列または cell 配列 — jsonencode および jsondecode を使用して JSON から、または JSON に変換される Data

要求メッセージでは、Data プロパティは uint8 ペイロードに変換される前の MATLAB データです。データ変換は RequestMessagesend メソッドまたは complete メソッドを呼び出すと発生します。変換は、メッセージで指定する Content-Type と Data のタイプによって異なります。Content-Type を指定しない場合、send メソッドおよび complete メソッドはデータからタイプを推測し、適切な ContentTypeField を要求メッセージに追加します。

応答メッセージでは、Data はサーバーで指定された Content-Type に基づいて MATLAB タイプに変換された uint8 ペイロードを表します。変換に失敗した場合、Data は空のままで、生のデータが Payload プロパティに示されます。

応答 Payload の自動変換を抑制するには、HTTPOptions.ConvertResponse プロパティを false に設定します。その場合、Data には文字データの string、またはバイトの uint8 ベクトルのいずれかが含まれます。

属性:

GetAccess
public
SetAccess
public
Dependent
true

Data プロパティの Content-Type。読み取り専用の matlab.net.http.MediaType オブジェクトとして指定します。このプロパティは、Data プロパティのコンテンツをペイロードから、またはペイロードに変換する方法を決定します。Content-Type に charset 属性のある MediaType が含まれる場合、charset がエンコードを決定します。詳細については、Internet Engineering Task Force (IETF®) Web サイトで RFC 2616、セクション 14.17 の Content-Type を参照してください。

このプロパティの値は、通常、この MessageBody を含むメッセージの Content-Type フィールドで convert を呼び出した結果と同じです。

ContentType は要求メッセージでは設定しません。MessageBody オブジェクトを作成するとき、このプロパティは空になります。MessageBody を要求メッセージにコピーすると、メッセージに ContentTypeField の値がある場合、ContentType はこれに設定されます。RequestMessagesend メソッドおよび complete メソッドは、要求メッセージの Data のタイプと ContentTypeField の値に基づいて ContentType を設定します。

応答メッセージでは、ContentType はメッセージの ContentTypeField に基づいています。

属性:

GetAccess
public
SetAccess
public
Transient
true

このプロパティは、ResponseMessagePayload プロパティがエンコードされていることを示すために設定されます。ContentCoding が設定されると、ペイロードでは何の処理も行われず、Data プロパティは空になります。

MATLAB は、ペイロードが gzipdeflate などのサポートする圧縮アルゴリズムを使ってエンコードされたメッセージを受信すると、他の変換を行う前にこのペイロードを自動的にデコードします。正常にデコードされると、オプションで、デコードされたペイロードを Payload に、変換されたペイロードがある場合はこれを Data に格納します。その場合、このプロパティは空になり、Payload がエンコードされていないことを示します。

エンコードされたペイロードのデコードに失敗した場合、または HTTPOptions.DecodePayload プロパティを false に設定してデコードを抑制した場合、エンコードされたままの未処理のペイロードが Payload に返され、Data が空のままになり、ContentCoding は応答メッセージの Content-Encoding ヘッダー フィールドの値を表す string のベクトルに設定されます。この場合、Payload をそのまま保存したり (たとえば、ファイルに書き込む)、ContentCoding で指定された圧縮アルゴリズムに従って処理することができます。たとえば、値が gzip の場合、データをファイルに書き込んで gunzip コマンドを使用してデータを処理できます。

属性:

GetAccess
public
SetAccess
public
Transient
true

データ型: string

メッセージで送信された生のバイト。uint8 ベクトル、スカラー string または文字ベクトルとして指定します。便宜上、要求メッセージでは、Payload をスカラー string または文字ベクトルに設定できます。MATLAB は値を uint8 ベクトルに変換します。応答メッセージでは、Payload は常に uint8 ベクトルです。

要求メッセージでは、次のようになります。

  • スカラー string または文字ベクトルは、ContentType プロパティで明示的または暗黙的に指定された charset がある場合はこれを使用して、あるいは何も設定されなかった場合は UTF-8 エンコードを使用して変換されます。異なるエンコードを使用する場合は、たとえば、関数 unicode2native を使用して自分でエンコードし、結果の uint8 ベクトルを Payload に割り当てます。

  • バイト配列での出力変換を行わない場合、Data プロパティではなく Payload を設定します。代わりに Data を設定すると、RequestMessage.send に要求または履歴戻り引数を指定する場合は RequestMessage.complete の戻り値において、HTTPOptions.SavePayload プロパティを設定する場合は ResponseMessage において、Payload が送信されたバイトで埋められます。

  • Payload を設定すると、Data がクリアされます。Data および Payload の両方が設定されたメッセージを送信すると、Payload が送信され、Data は無視されます。send メソッドまたは complete メソッドで返された応答メッセージと要求メッセージのみが、両方のプロパティを同時に設定することができます。

応答メッセージでは、Payload は次の場合に受信される生のバイトです。

  • RequestMessage.send メソッドで履歴戻り引数を指定する。

  • HTTPOptions.SavePayload プロパティを true に設定する。

  • PayloadLogRecord で示されるメッセージに常に設定される。

  • ペイロードから MATLAB データへの変換が失敗した場合。詳細については、HTTPException.History プロパティをチェックしてください。

属性:

GetAccess
public
SetAccess
public
Dependent
true

メソッド

すべて展開する

バージョン履歴

R2016b で導入