complete
クラス: matlab.net.http.io.ContentProvider
名前空間: matlab.net.http.io
ContentProvider の完全な HTTP ヘッダー
構文
complete(provider,URI)
説明
complete(
は、このプロバイダーに必要なヘッダー フィールドをメッセージのヘッダーに追加します。このメソッドは、ヘッダーを検証したり既定のフィールドを追加したりする前、このクラスで provider
,URI
)expectedContentLength
以外のメソッドを呼び出す前に、RequestMessage.send
メソッドと RequestMessage.complete
メソッドで呼び出されます。
サブクラスでは、これを使用して、内容に応じた任意のフィールド (Content-Type など) をヘッダーに追加できます。詳細については、Header
プロパティの説明を参照してください。
このメソッドは、メッセージが既に完了している場合 (RequestMessage.Completed
が true
の場合) は RequestMessage
メソッドで呼び出されません。ただし、完了後にメッセージに対して変更を行うと RequestMessage.Completed
プロパティがリセットされ、それらのメソッドでこのメソッドを再び呼び出せるようになります。そのため、start
の呼び出し前に complete
を複数回呼び出せるようにプロバイダーを準備する必要があります。start
が呼び出された後は、このプロバイダーの reusable
で別のメッセージに再利用できることを示す true
が返されない限り、このプロバイダーの complete
が MATLAB® で再度呼び出されることはありません。
別の ContentProvider
を拡張する ContentProvider
では、最初にスーパークラスの complete
メソッドを呼び出してスーパークラスに必要なヘッダー フィールドを Header
に追加し、その後に必要に応じてそれらのフィールドを変更します。
このメソッドの既定の動作では何も行いませんが、このプロバイダーが開始されていて再利用可能でない場合は例外をスローします。このメソッドをオーバーライドするプロバイダーでは、常に対応するスーパークラスを呼び出す必要があります。
このプロバイダーがマルチパート デリゲートでない場合、メッセージに Content-Length フィールドを含める (結果としてチャンク転送コーディングが使用されなくなる) には、expectedContentLength
で空でない値を返すか、このメソッドを実装して Header
に Content-Length フィールドを挿入します。
このメソッドは、Completed
プロパティが true
に設定されたメッセージでは呼び出されません。つまり、通常は、このメッセージが複数回送信されても、このメソッドはメッセージごとに 1 回しか呼び出されないことになります。そのため、メッセージごとに 1 回だけ実行すればよい初期化はこのメソッドの実装で実行します。初期化には時間がかかるため、データの送信準備ができるまで実行する必要がなければ start
メソッドで実行します。
入力引数
属性
Access | protected |
例
バージョン履歴
R2018a で導入