2

私は TCL 8.5 (アップグレードできません) を使用しており、HTTP パッケージのバージョン 2.7.7 を実行しています。次の http::geturl コマンドを使用して、gzip された画像をダウンロードしているように見えるライブラリを呼び出しています。

http::geturl $url -headers {Accept-Encoding gzip} 

そして、私はこのエラーが発生しています:

invalid command name "zlib"

Webで検索すると、基本的にAccept-Encoding gzipの送信を停止することを推奨するバグへの参照しか見つかりませんでした(8.6にアップグレードすることもできません)http://sourceforge.net/p/tcl/バグ/4784/

私の質問は、この問題に対する 8.5 の回避策はありますか? このライブラリが "Accept-Encoding gzip" ヘッダーを送信するのを止める方法はありますか?

4

1 に答える 1

1

問題は、(コマンドを提供する) zlib パッケージがzlib利用可能であるとコードが認識し、gzip 圧縮ストリームのサポートをオンにすることです。コードの最も簡単な修正は、次のことです。

package require zlib

を実行するコードを呼び出す前にこれが発生する限り、http::geturlこれで十分です。

パッケージを持っていない場合 (この場合、 から明らかな障害が発生しますpackage require)、リクエスト ヘッダーの作成時に http パッケージのソフト依存関係コードが間違っているバグに遭遇したか、または要求されていないにもかかわらず、gzip 圧縮されたデータを送信しているサーバーで。TIP #234 (つまり、http://svn.scheffers.net/zlibの SVN リポジトリ)から指摘されたコードには、zlib パッケージのバージョンのソースが含まれています。 Tcl 8.6 のビルトイン サポートですが、Tcl 8.5 API しか使用していないと思います。

残念なことに、zlib パッケージにはいくつかのバージョンがあります。残念ながら、これは取得するのに最も厄介な Tcl パッケージの 1 つです。

于 2013-09-03T04:00:02.750 に答える