Main Content

getData

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

ContentProvider から HTTP 要求メッセージで送信するデータの次のバッファー

構文

[data,stop] = getData(provider,length)

説明

[data,stop] = getData(provider,length) は、HTTP 要求メッセージで送信するデータのバッファーを返します。

MATLAB® は、RequestMessage.sendstart を呼び出した後にこのメソッドを繰り返し呼び出し、それぞれの data のバッファーを即座にサーバーに送信します。メッセージがチャンク化されている場合は (たとえば expectedContentLength の戻り値が空の場合やメッセージに Content-Length フィールドがない場合など)、チャンクのサイズが data の長さになります。

入力引数

すべて展開する

コンテンツ プロバイダー。matlab.net.http.io.ContentProvider オブジェクトとして指定します。

プロバイダーで返すデータについての最適な対話型動作のために推奨される長さ。double として指定します。

この値は、preferredBufferSize の値 (指定されている場合) と内部バッファーのサイズに基づいて推奨される長さです。ただし、プロバイダーで返すバイト数がこれより多かったり少なかったりしても問題はありません。また、プロバイダーで特定のサイズのチャンクを送信する場合は length は無視してかまいません。length の値は MATLAB で特定の値に指定されるとは限りませんが、常にゼロより大きい有限数になります。返される data のバッファーが大きいと、MATLAB でのデータの送信時にブロックされる時間が長くなり、Ctrl+C による処理の割り込みもできなくなることがあります。非対話型アプリケーションでは、バッファーが大きい方が効率的であり、これが問題になるとは限りません。

出力引数

すべて展開する

データの次のバッファー。uint8 ベクトルまたは空として返されます。data が空で、stop が設定されていない場合、MATLAB はこのメソッドを繰り返し呼び出して追加のデータを取得します (間にわずかな遅延が発生します)。メッセージを終了するには、stop=true を返します。ただし、メッセージを中止する例外をスローすることもできます。この例外は RequestMessage.send の呼び出し元に返されます。

Content-Length ヘッダー フィールドがメッセージ ヘッダーに含まれているか expectedContentLength から返された場合 (つまりメッセージの送信にチャンク転送コーディングが使用されない場合)、stop=true までの間に複数の呼び出しで返される data の合計バイト数がその数値と等しくならなければなりません。stop=true が途中で呼び出された場合や返された data の合計がその数値を超えている場合、MATLAB は例外をスローして接続を閉じます。

送信を終了するかどうかを示します。プロバイダーが設定しなければならない logical として返されます。false の場合、MATLAB は次のバッファーの送信準備ができた時点でこの getData を再度呼び出して追加のデータを取得します。true の場合は、プロバイダーからの送信データが data で返されたデータまでで終了したことを示します。これにより、メッセージを終了するように MATLAB に指示します。これは、RequestMessage を終了して MATLAB で ResponseMessage を受信できるように準備する標準の方法です。

属性

Accesspublic

バージョン履歴

R2018a で導入