HttpWebRequest ヘッダーにトレーラーを追加しようとしていますが、ファイル データの終わりの後にそのトレーラーを追加していません。
wreq.ContentType = "application/octet-stream";
wreq.AllowWriteStreamBuffering = false;
wreq.SendChunked = true;
//wreq.Headers.Add(HttpRequestHeader.Te, "trailers");
wreq.Headers.Add(HttpRequestHeader.Trailer, "Test");
wreq.Headers["Test"] = "the-value";
using (Stream POSTstream = wreq.GetRequestStream())
{
//dataByte is file-data in byte[]
POSTstream.Write(dataByte, 0, dataByte.Length);
POSTstream.Flush();
//hashValue is trailer in byte[]
POSTstream.Write(hashValue, 0, hashValue.Length);
POSTstream.Flush();
POSTstream.Close();
}
空のチャンクの後にこのトレーラー「Test」@ EOFを追加する必要がありますが、追加しません。プログラムでトレーラーを追加しようとすると、トレーラーではなくファイルデータと見なされます。
予想されるリクエスト:
POST <URL> HTTP/1.1
Content-Type: application/octet-stream
Trailer: Test
Transfer-Encoding: chunked
5d
File-data
0
Test: the-value
実際のリクエスト:
POST <URL> HTTP/1.1
Content-Type: application/octet-stream
Trailer: Test
Transfer-Encoding: chunked
5d
File-data
5A
Test: the-value
0
このテスト トレーラーがブランク チャンクを取得しない理由。このトレーラは、ファイルの終わりを識別するためにサーバーで使用されます。助けてください。