問題タブ [chunked-encoding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaサーブレット内からチャンク応答でHttpトレーラー/フッターを送信するにはどうすればよいですか?
基本的に私の応答ヘッダーには
Transfer-encoding = chunked、
Trailer = [送信したい予告編、たとえば「SomeTrailer」]
サーブレット出力ストリームへのデータの書き込みが完了したら、トレーラー「SomeTrailer:[value]」を書き込んでいますが、これはhttpclientによって正しく解析されていません。httpclientは、inputstream全体(トレーラーを含む)を単一のチャンクと見なします。また、データが出力ストリームに書き込まれた後、応答ヘッダーにトレーラーを書き込んでみましたが、成功しませんでした。
助けてください
私はこれに関する良い情報源を見つけていません。
windows - libcurl プロセスのチャンク応答
最近、libcurlを使用してインターネットからWebページを取得するプログラムを構築しています.チャンクエンコーディングを使用した応答で、libcurlがチャンクヘッダーを取得できないことがわかりました.次に、libcurlオンラインドキュメントを調べたところ、WriteFunctionによるチャンクヘッダータックルと書かれていますlibcurl バージョン 2.18 を使用しています。CURLOPT_WRITEFUNCTION と CURLOPT_HEADERFUNCTION のコールバックを設定しました。チャンク ヘッダーに関する単一の文字以外は何も取得していません。チャンク エンコーディングを使用する libcurl に問題はありますか? 正しく動作させるにはどうすればよいですか?ありがとう ps 私が取得しようとしている Web はhttp://list.taobao.com/browse/cat-0.htmです。gbk エンコーディングを使用する中国語の Web サイトです。
ここに私がcliburlに行った設定があります
//ここに他の何かがあります
コールバックは必要に応じて宣言されています。 debugfunction に渡されたバッファにはチャンク長がありますが、 writefunction にはありません。 writefunction でそれを取得するにはどうすればよいですか
php - IIS7は、チャンクエンコードされたファイルのアップロードを拒否します
チャンクエンコーディングを使用してファイルを受信するWindows/Apache2/PHPアプリがあります。その理由は、アップロードされたファイルが動的であり、転送前にその長さがわからないためです。これは、箱から出してすぐに正常に機能します。
次に、アプリをIIS7/PHPに移植する必要があります。問題は、IISがチャンク化されたファイルの受信に失敗することです。ファイルがアップロードされると、サーバーはまったく応答しません。どうすればこれを解決できますか?
私のテストでは、PHPも使用していないことに注意してください。IISが.htmファイルへのPOSTを拒否するため、私は単に.php拡張子を持っています(これは理にかなっています)。
この回答でrupelloが示唆しているように、クライアントが壊れていないことを確認するためにcURLを使用してテストを行いました。転送がチャンク化されていない場合はすべて正常に機能しますが、cURLも回答を取得できません。
私は次のテストを行いました:
test.php:
このコマンドは戻りません(応答を待ってスタックします)
注:curlによる発行-H "Expect:"
を抑制します。Expect 100-Continue
結果は、このヘッダーがなくても同じです。もちろん、追加のラウンドトリップを実行します。送信済:
問題:サーバーから何も返されません。サーバーは待機し続けているようです。カールは戻りません。
チャンクエンコーディングを使用しない同じコマンドは、期待どおりに機能します。
送信済:
サーバーが正しく応答するようになりました。
同じファイルとリクエストを使用したプレーンバニラLAMPサーバーでのテストは正常に機能します。
では、IISでリクエストチャンクエンコーディングを有効にするにはどうすればよいですか?
注:関連するASPパラメーターを試しましたが、役に立ちませんでした。
c - libcurl C API > 2MB バッファを使用したチャンクでの POST データ
2MB バッファを使用して、ファイル (特定の範囲、たとえば 150 ~ 250000 バイトをファイルからポストする必要がある) からデータをチャンクでポストするにはどうすればよいですか? デフォルトでは、libcurl は 16K (変更不可) のバッファを使用し、ビデオ ストリーミングには小さすぎます。
c - libcurl C API > URL から取得したデータの POST 範囲
ファイルからではなく、URL から取得したデータの範囲を投稿するにはどうすればよいですか? http://localhost/video.mp4 (A)から 150 ~ 250000 バイトを読み取り、このデータをhttp://172.32.144.12 (B) にチャンクでスムーズに POST して、データがストリーミングされているように見せる必要があるとします。 (A)から(B)?
c# - c#:JPGを部分的に保存する
私は現在、ac#オープンソースの写真モザイクソフトウェア(Sourceforge Link)に取り組んでいます。このソフトウェアは、大量の小さな写真(タイル)を1つの大きな画像につなぎ合わせます。
最終的な画像サイズは通常20kピクセル×15kピクセルのオーダーであるため、タイルをメモリに配置する方法のマップのみを保存しています。最終的な画像を作成するために、私はそれを部分的に、つまり8行のバンドで作成しています(他の数でも可能です)。
bmpの場合、最初にbmpヘッダーを書き込み、次にARGBデータをこのファイルに追加することで、このデータをチャンクごとに簡単に保存できます。
しかし、結果として得られるbmpは、それ以上処理するには大きすぎます(たとえば、ポスター印刷会社に渡すなど)。したがって、これらの大きな画像をjpgとしてhddに保存したいと思います。
問題は、jpgが圧縮されているため、データをチャンクで書き込むのは非常に難しいように見えることです(通常のBitmap.Save()関数は最初に画像全体をメモリにロードするため、適用できません)。純粋な非圧縮のRGBデータを書き込むためです。それをしません。
私の知る限り、jpgの圧縮アルゴリズムはチャンクまたは8x8ピクセルで機能するため、パーティでjpgを書き込む基本的な機能が存在する必要があります。
この問題の解決策を見つけるために、いくつかの画像ライブラリ(FreeImage、GraphicsMagick、LibTiff.NET)を調べましたが、見つかりませんでした。LibTiffには基本的に必要な機能がありますが、tiff画像形式の場合のみです。
あなたの助けをどうもありがとう!マックス
node.js - 'audio/x-wav' バッファを連結し、'Transfer-Encoding': 'chunked' で提供しています
この質問は、@thejh のおかげで解決された以前の質問のフォローアップです。
テキストを音声に変換し、データを「チャンク」データとしてクライアントに提供しようとしています。これまでのところ、ヘッダーは次のようになっています。
そして、テキストのスニペットをキュー内のオーディオに変換し (base64 でエンコードされたデータとして返されます)、次のように提供します。
すべての情報が転送されてクライアントに送信されますが、何らかの理由でブラウザー (私は Firefox 7.0.1 でテストしています) がそれを再生し、最初のチャンクの後で停止します。これはオーディオの途中終了を示す結果/デモです。これはgithubで実行されているコードです。
どうしてこれなの?これは、x-wav データに End のようなメタデータがあるか、ヘッダー/メタデータに指定された長さがあるためですか? もしそうなら、このメタデータは何ですか?ブラウザが受信したチャンクを正常に連結するように編集する方法はありますか?
ヘッダーは'Content-Length': Buffer.length
知っていますが、この場合、ストリーム全体がどれくらいの長さになるかわかりません。
誰でも提案を提供できますか。ブラウザがバッファを適切に連結するように、送信前にバッファを編集することはできますか?
java - nginx 経由でチャンク リクエストを作成する方法
nginx はチャンクされたリクエストをうまくサポートしていないようです。しかし、私はより決定的な(そして最新の)答えを得ようとしています。ヘッダーを設定する Java クライアントからサーバーに SOAP 要求を行うクライアントがありますTransfer-Encoding: chunked
。Tomcat で自分のアプリケーションに直接接続すると、すべてうまくいきます。
しかし、それらの間にnginxを配置すると、問題が発生します。
いくつかの詳細を追加するには: 私は CloudFoundry を使用しています。Micro Cloud Foundry を使用して、nginx がなくても期待どおりに動作することを確認しています。しかし、私の要件は cloudfoundry.com を使用することなので、そこで nginx をバイパスすることはできません。
この質問と回答は、これがおそらく私の唯一の回避策であると言っています: http://wiki.nginx.org/NginxHttpChunkinModule。しかし、cloudfoundry.com の構成を変更できないため、その回避策は利用できません。
この質問も似ているように見えますが、実際にはこの要件の逆をカバーしています。チャンクされたリクエストではなく、チャンクされたレスポンスをカバーします。
では、これを回避するためにクライアントに何らかの変更を加えてみてはどうでしょうか? Transfer-Encoding: chunked
と の両方をContent-Length: 123
ヘッダーとして送信することは可能ですか? この領域は私にとっては初めてのことですが、Apache HttpComponents のようなプロジェクトからは、長さまたはチャンクのいずれかを設定し、両方を設定することはないようです。チャンキングのポイントは、リクエストの開始時に長さを知る必要がないことです。クライアントに HTTP/1.0 を使用し、チャンクせずに nginx でうまくプレイするように指示できますか? 私が忘れている他の回避策のアイデアはありますか?
gzip - gzipされたコンテンツエンコーディングを複数のHTTPチャンクに分割できますか?
gzipされたコンテンツエンコーディングを複数のチャンクに分割できますか?これで失敗する既知の実装はありますか?
groovy - Groovy HTTPBuilder:GZIPedチャンク応答からエンティティコンテンツを取得する
POSTリクエストをWebサーバーに送信し、そのサーバーから送信された応答を読み取れるようにする必要があります。このコードでHTTPBuilderlibを使用してみました:
このコードが実行されると例外が発生します:
ワイヤーとヘッダーのデバッグをオンにしました。これが私が得たものです:
だから私は問題が応答がで送信されるという事実から来ていると思います:
これを行う別の方法はありますか?私はそれを間違っていますか?しばらくグーグルを試してみましたが、良いリードが見つかりませんでした。HTTPBuilder libはクロージャーの終了後にエンティティコンテンツを取得しているように見えますが、クロージャーを終了すると、エンティティコンテンツにアクセスできません(例外:クローズドストリームにアクセスできません)
私は本当にこれについて助けていただければ幸いです;)