主要内容

このページの翻訳は最新ではありませ。

matlab.net.http.io.genericConsumerクラス.

パッケージ:matlab.net.http.io
スーパークラス:matlab.net.http.io.contentConsumer.

HTTPメッセージの複数のコンテンツタイプのコンシューマー

説明

サーバーによって返されるタイプを事前に予測できないときに,このコンシューマーを使用して複数のコンテンツタイプのストリーミングを処理します。

matlab.net.http.io.GenericConsumerクラスは处理クラスです。

作作者

説明

消费者= GenericConsumer.は既定のコンシューマーを使用してGenericConsumerを作成します。

消费者= GenericConsumer (类型消费者は,GenericConsumerを构筑し,対応する消费者を使用して指定された类型を致理性し。引码ペアは,types1, consumer1,…,typesN consumerNのように任意の顺序でで指定指定でき.matlab®类型を出现する顺序で検索し,最初に一致するものを使用します。指定されたタイプに一致するものがない场合,MATLABはコンシューマーの既定のセットを使用しますが,これはタイプによって异なります。

消费者= GenericConsumer (puthandle.は,このコンシューマーのputDataメソッドの呼び出しごとにputhandle.によって指定される関数を呼び出すContentConsumerを构筑します。

入力数

开する

コンテンツタイプ.String配列,文章ベクトルまたは文章ベクトルベクトル细胞类型は,構文“类型/子类型”を使用してコンテンツタイプを指定します。

类型の各要素のタイプコンポーネントとサブタイプコンポーネントは正規表現として扱われ,応答のContentTypeFieldのタイプ/サブタイプととされますます。そのその,タイプまたはサブタイプに指定れた単独ののののののまたはまたはサブに致ししししししでで字字列始位置文列终列终位置の両端に固定さます。

タイプ/サブタイプ

一道するもの
文本/ * タイプ“文本”と任意のサブタイプ
* / * json。* 任意のタイプとjson的が含まれるサブタイプ
* / * json 任意のタイプとjson的で终わるサブタイプ
* / * 任意のタイプまたはサブタイプ

サブタイプが'*'である结合,末尾の“/ *”を省略することができます。文本“文本/ *”と同じです。

类型は,表示される順番に検索され,最初に一致するものが使用されます。指定されたタイプの中に一致するものがない場合は,タイプに応じて,既定のコンシューマーセットが次の順番で使用されます。

タイプ/サブタイプ

既定のコンシューマー
MultiPart / * MultipartConsumer
图像/ * ImageConsumer
* json。* * / JSONConsumer
* / * StringConsumer
* / * BinaryConsumer

StringConsumerBinaryConsumerの両方が任意のタイプで使用されますが,StringConsumerが受け入れるタイプははを特价できるタイプのみであり,文本/ *字符集,属性をもつ任意のタイプ,あるいはMATLABによって文字ベースであると認識されているいずれかのタイプ(“application / xml”“应用程序/ javascript”など)として指定します。StringConsumerがタイプを棄却した場合,BinaryConsumerがそのタイプを受け入れ,未変换のペイロードをresponse.body.data.uint8.ベクトルとして格納します。

このこのコンシューマーがこのこの検索条件にづいて致致するデリゲート选択すると,デリゲートデリゲート初始化メソッドが呼び出され,デリゲートがそのペイロードを受け入れるかどうかが確認されます。デリゲートが受け入れないことを示すがメソッドから返された場合,このコンシューマーは引き続きリストを検索し,一致する次のデリゲートを見つけます。

コンテンツコンシューマー。指定されたタイプのいずれかを処理できるmatlab.net.http.io.contentConsumer.オブジェクト,またはこれらのタイプをを定理できるContentConsumerを返す关关へのとしてとしてします。

次のcontentConsumer.putData.putdata.构文をもつ关键词のハンドル。

[长度,停止] = PUTDATA(数据)

数据uint8.の配列,长度はその配列の长さです。

この構文を使用して,サーバーが返すデータ型がわかっている場合に,1つの関数を使用してサーバーからのすべての入力を処理します。関数は,ResponseMessageまたはこのコンシューマーに关键词ににはアクセスできませませ

プロパティ

开する

パブリックプロパティ

推奨されるバッファーサイズ。UINT64として指定されます。AllocationLengthは,MATLABにより,putDataに渡されるデータの予測されるバッファーサイズに設定されます。実際のサイズは,これよりも小さくなることも大きくなることもあります。パフォーマンスを向上させるために,この値を使用して,コンシューマーでデータを処理するためのスペースを事前に割り当てることができます。

このプロパティは,サブクラスで利用できるように,开始メソッドを呼び出す前にMATLABで設定されます。

属性:

Getaccess.
民众
setaccess.
民众

想定されるペイロードの长さ。UINT64として指定されます。このプロパティは通常、标题プロパティにおけるmatlab.net.http.field.ContentLengthField价值プロパティになります。

ContentLength.が空の场合,长さは不明です。ペイロードペイロードPutdata(Uint8.empty)が呼び出された時点で終了します。

このプロパティは,サブクラスでデータの長さを確認できるように,初始化を呼び出す前にMATLABで设定されます。

このContentConsumerが最上位のコンシューマーのデリゲートである场合书,ContentLength.の値が最上位のコンシューマーのContentLength.と異なる値になることがあります。

例:元素个数(someData)。ここここ,一些数据uint8.型です。

属性:

Getaccess.
民众
setaccess.
民众

ペイロードのメディアタイプ。matlab.net.http.MediaTypeオブジェクトとして指定します。このこのプロパティ通讯,标题プロパティにおけるmatlab.net.http.field.ContentTypeField价值プロパティになります。内容类型プロパティプロパティ空のの合,ContentTypeFieldは空または现处于しません。

このプロパティは,サブクラスで媒体类型を确认できるように,初始化を呼び出す前にmatlabで设定されます。データデータから别媒体类型であることがわかった場合は,サブクラスでこのプロパティを設定できます。

この値は,転送の终了时にmatlabによってResponse.Body.ContentTypeプロパティにコピーされます。

例:的应用程序/八进制

属性:

Getaccess.
民众
setaccess.
民众

现代监理中のペイロードの。matlab.net.http.HeaderFieldオブジェクトとして指定されます。

コンシューマーは,このヘッダーを使用して,送られてくるペイロードの処理方法を決定します。最上位のコンシューマーの場合,この値は响应.Header.たとえばの场なります。たとえば,MultipartConsumerで処理されるマルチパートメッセージの場合は,そのデリゲートで処理中のパートのヘッダーになります。デリゲートは引き続き响应.Header.で元のメッセージのヘッダーを確認できます。

このプロパティは,サブクラスで利用できるように,初始化を呼び出す前にMATLABで设定されます。

属性:

Getaccess.
民众
setaccess.
民众

诚信がが完了しRequestMessagematlab.net.http.RequestMessageオブジェクトとして指定します。これは,すべてのリダイレクトが完了した最終的なRequestMessageであり,发送メソッドからのcompletedrequest戻り値です。

このプロパティは,サブクラスで利用できるように,初始化を呼び出す前にMATLABで设定されます。

属性:

Getaccess.
民众
setaccess.
民众

処理中のResponseMessagematlab.net.http.ResponseMessageオブジェクトとして指定します。

回复プロパティは,初始化を呼び出す前にmatlabで设定されます。この値は,ヘッダーのの信まで完了,ペイロードをを信する前前ResponseMessageになります。応答メッセージの処理の開始時(マルチパートメッセージの場合はパートの開始時)に,ResponseMesssage。身体プロパティは,数据プロパティと有效载荷プロパティが空のMessageBodyオブジェクトになります。诚信したデータを格式するするため,コンシューマーはデータ転送中に回复プロパティとmessagebody.data.data.プロパティを変更できます。通常,コンシューマーはデータセットresponse.body.data.ををに格式します,これは必须ません,このが完了と,この回复がmatlabから发送の呼び出し元に返されます。回复标题状态线などの他のは,コンシューマーで変更しないで。发送の呼び出し元に返されます。

Response.Body.Payloadプロパティは転送中は空であり,コンシューマーで変更してはなりません。httpoptions.SavePayload.プロパティプロパティが设定される,次次matlabは,メッセージまたはパートの転送终了时(Putdata(Uint8.empty)の呼び出し後),または例外の発生時に,受信したペイロードに有效载荷を设定します。

メッセージの処理中にコンシューマーで例外が発生した場合は,MATLABからtextboxオブジェクトがスローされます。历史プロパティにはこの回复値が含まれます。

コンシューマーがマルチパートメッセージのパートを処理するデリゲートの場合,响应.Header.にメッセージ全体のヘッダーが格納され,各パートのContentConsumerを呼び出す前に响应有效载荷プロパティと数据プロパティがクリアされます。各各パートの最后,元元応答のBody.Data.にあるResponseMessageオブジェクトの配列の末尾に,このオブジェクトの标题およびこのプロパティの身体を含む,新闻ResponseMessageが追加されます。次次のデリゲートで,前のデリゲートのMessageBodyではなく空のMessageBodyを含む新規の回复が確認されます。

属性:

Getaccess.
民众
setaccess.
民众
依赖
真正的

管理中の要求のの信先。matlab.net.uri.オブジェクトオブジェクトとして指定されれこの値は,发送で決定される元の送信先URIの値になります。プロキシのURIやリダイレクト後の最終的なURIではありません。

このプロパティは,サブクラスで利用できるように,初始化を呼び出す前にMATLABで设定されます。

属性:

Getaccess.
民众
setaccess.
民众

保護プロパティ

デリゲートのputDataメソッド。関数ハンドルとして指定するか、CurrentDelegate.が設定されている場合は[]として指定します。

このプロパティはdelegateToによって設定されます。サブクラスはそれぞれのputDataメソッドでこの関数を呼び出し,データをデリゲートに送信するか,UINT8.PEMPTY.を送信してデータのデリゲートの部分を终了しなければなりません。

[len,stop] = obj.putmethod(数据);

メッセージの最后で,任意のデリゲートに対する上记のでメッセージを终了终了た,サブクラスはPutMethodを空に设定し,それぞれのスーパークラスで呼び出しPutdata(Uint8.empty)を起動して,メッセージが終了したことをこのクラスが認識するようにしなければなりません。このputData呼び出しはPutMethodをを空のままににする,コンストラクターに渡されたputhandle.引数に戻し。

属性:

Getaccess.
受保护的
setaccess.
受保护的
依赖
真正的

データデータ追加するためにputDataメソッドメソッド呼び出される关。关键词として指定れます。このこのクラスputDataメソッドは,数据引数で受け取ったデータを応答メッセージの既存のデータに追加するために関数Appendfcn.を呼び出します。この関数のシグネチャは次のとおりでなければなりません。

newdata AppendFcn(消费者)

新数据は,consumer.Response.Body.Dataの配列に追加されるデータです。このメソッドは,数据の新しい長さに合わせて消费者.CurrentLength.を更新する必要があります。新数据が空の場合はストリームの末尾を示し,関数によりresponse.body.data.が最终的な値に更新されます。

既定の动作で,数据を任意の値の配列として扱う,関数霍罗斯克に対応した内部关联数量使使さます。この关键词,スペースを事前に割り当てること效率效率新数据が追加され,格納されたデータの実際の長さがCurrentLengthに反映されます。メッセージメッセージの最后,response.body.data.CurrentLengthの値までで切り捨てられます。

霍罗斯克が追加処理に適さない場合は,このプロパティをサブクラスで変更できます。たとえば,StringConsumerでスカラー弦を作物成する合并は,弦への加值に关联霍罗斯克ではなく関数+を使用することがあります。

データデータ追加するcontentConsumer.putData.putdata.を呼び出さない場合やデータを追加する際の霍罗斯克の动作に问题がない场合は,サブクラスでこのプロパティを无视することができます。

例:@customappend.@customappend.はコンシューマーによって定義されます。

属性:

Getaccess.
受保护的
setaccess.
受保护的

このこのコンシューマーによるデリゲート先のContentConsumermatlab.net.http.io.contentConsumer.オブジェクトオブジェクトとして指定しし呼び出し元のの(デリゲーター)のdelegateToメソッドによってCurrentDelegate.プロパティが设定されます。现处于のデリゲーションがないない合,値は[]です。

MATLABは初始化を呼び出す前にCurrentDelegate.[]に设定します。

属性:

Getaccess.
受保护的
setaccess.
受保护的

response.body.data.プロパティの现处于ののデータの长长。UINT64として指定されます。

このプロパティは,response.body.data.。response.body.data.にデータが格納されているか,ContentConsumerサブクラスでresponse.body.data.に格纳する以外の何らかの方法でデータが破弃されていることを示します。

このプロパティは,この基底クラスのputDataメソッドで,Appendfcn.プロパティが空の場合に使用および設定されます。putData|Appendfcn.の任意の実装でresponse.body.data.に結果を反映したりするのに使用できます。

putDataを使用するサブクラスでは,このプロパティを変更してデータが格納されるバッファーの位置をリセットすることもできます。たとえば,既定の関数Appendfcn.を使用している場合,putDataのの呼び出しごとにすべてのresponse.body.data.CurrentLengthプロパティを1にリセットすることで次putDataの呼び出し时尚新しいでバッファーを上书できできできのを越えの要素クリアする必要ありませんするありません。

putDataを呼び出さないサブクラスでは,このプロパティを独自のデータの追跡に使用できます。使用しない場合は未設定(空)のままにしておいてかまいません。ここで設定できる値に関して,MATLABにはいかなる制約もありません。また,この値は,既定のAppendfcn.でデータの次のバッファーを格納する位置とメッセージの末尾のデータを切り捨てる位置を特定するためにのみ使用され,それ以外の目的には使用されません。データが切り捨てられないようにするには,Putdata(Uint8.empty)の最後の呼び出しの前にこのプロパティを空に設定します。

このプロパティは,初始化の各呼び出しの前にMATLABで空に設定されます。

属性:

Getaccess.
受保护的
setaccess.
受保护的

このこのコンシューマーのデリゲート元のContentConsumermatlab.net.http.io.contentConsumer.オブジェクトオブジェクトとして指定されれこのコンシューマーコンシューマーGenericConsumerMultipartConsumerなどの別のコンシューマーから呼び出されたデリゲートである場合,これは呼び出し側のコンシューマーを示します。发送の呼び出しで指定された最上位のコンシューマーの場合は空になります。

デリゲートは,このプロパティを使用してデリゲーターのプロパティにアクセスし,デリゲート元のコンシューマーなどを確認できます。

属性:

Getaccess.
受保护的
setaccess.
受保护的

メソッド

开する

詳細

开する

R2018Aで导入