問題タブ [lwp-useragent]
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.
perl - Perl エラー: X-Died: チャンク データの後に改行がありません:
LWP::UserAgent を使用して Web ページを取得しようとすると、次のエラーが発生します
X-Died: Missing newline after chunk data: 'OeXk0Yk1iRVhX.<Lot of this>...pOnR5cGU9InhzOnN' at /usr/share/perl5/Net/HTTP/Methods.pm line 481.
さらに悪いことに、常に表示されるわけではありません。Web ページを適切に「取得」することが何度もできます。誰かが問題に光を当てることができますか? Perl モジュールのバグですか? この問題の回避策はありますか?
perl - フェイルオーバーの方法
geonames.org サーバーから何かを取得するために使用wget
すると、2 つの IP アドレスが報告され、最初のアドレスは失敗しますが、2 番目のアドレスから取得されます。
しかし残念ながら、LWP::UserAgent と HTTP::Request を使用して perl 経由でアクセスする必要があります。最初の IP が失敗した場合、2 番目の IP を試すにはどうすればよいですか?
perl - LWP::UserAgent と HTTP::POST リクエストのリクエスト
特定のスクリプトで、私はこれを書き込もうとしました:
「400 Bad Request」を取得しました。いくつか読んだ後、私はこれを試しました:
うまくいきましたが、これら2つは同じことをすべきだと思いました。ここで何が欠けていますか?HTTP::RequestとLWP::UserAgentのドキュメントで何か誤解していますか?
LWP::UserAgent に何をしているかを出力するように依頼する方法はありますか?
mysql - perl lwp useragent と mysql データのダウンロードと更新文字セットのトラブル
同じ freebsd システムの新しいホスティング プロバイダに移行しましたが、perl スクリプトの 1 つが正しく動作しなくなりました。
外部の https サイトからデータをダウンロードし、mysql db に保存します。データは cp1251 エンコーディングで、同じエンコーディングが mysql ベース、テーブル、および接続にあります。my.cnf から:
perl スクリプトから mysql に接続する場合:
だから、私はこのデータを取得しています
次に、スクリプトはこの $s を解析し、結果を mysql に挿入します。その場合、エンコーディングが破損しています。
私が発見した面白いことは、このデータをテキスト ファイルに書き込んでから、このファイルから読み取って mysql に挿入すると、破損していないということです。
このテキスト ファイルを表示すると、データが cp1251 エンコーディングであることがわかります。
以前のホスティングからの変更点:
perl: 5.10.1 から 5.14.4 へ
libwww: 5.835 から 6.05 へ
mysql サーバーは同じ 5.1
更新: うわー、ちょうど何かを見つけた. $res->decoded_content() を $res->content() に置き換えると、すべてが機能します。おそらく、ダウンロードしているページのヘッダーに文字セットがないためです。
cp1251 のように見えますが、そうではないというような方法で、decoded_content がどのように文字列を台無しにするのか、私はまだ理解していません。多分いくつかのutfフラグ?助けてください。
UPDATE2: スクリプト (主要部分) は次のとおりです。
perl - LWP Get Large File Download ヘッダーが見つからない
この記事は、 LWP GET の大きなファイルのダウンロードに関する作業の続きです。その投稿は、ヘッダーで引数を誤って渡そうとしたときの LWP からのエラーに関するものでした。今、私が行った変更と、アプローチをデバッグしようとしている方法を投稿しています。この議論は、POST と GET ヘッダーの形成、および CGI パッケージの使用中にサーバーが受け取るものに関心のある人にとって非常に有益です。ネットで簡単に見つけられる情報ではありません。
これが私のクライアントコードスニップです:
サーバーの切り取り部分 (cgi スクリプト) は次のとおりです。
GET からの出力は次のとおりです。
POST リクエストを持つクライアントは次のとおりです。
これはサーバー上の出力です。以前と同じですが、現在は POST からのものです。
つまり、POST ダンプで「キー」/「値」のペア、つまり「ターゲット => random23」を確認できます。GET ダンプでは、クライアント側で送信したキーや値が見つかりません。それを説明できますか、または CGI スクリプトでキーと値のペアを抽出するために何をする必要がありますか?
perl - Perl LWP::UserAgent が特定のサーバーで SSL に失敗する
使用を開始するまで、証明書が無効であるという応答が返されました (ホスト名の検証を無効にすると、サーバーは代わりに暗号化が必要であると言うでしょう) Net::SSL
。
私の要求を行う前に、ofc。
現時点でのモジュールのバージョン:
最新のものも試しましたCrypt::SSLeay
が、それでも失敗しました(テスト環境でこれを試しました)。
これは、クライアントとサーバーの間のライブラリの単なる制限Crypt::SSLeay
ですか?暗号化方法に同意できない可能性がありますか?
またOpenSSL
、問題のサーバーに手動で接続していましたが、問題なく動作し、証明書のエラーなどもありませんでした。
私の問題はすでに解決されていますが、非常に優雅に感じる方法ではありませんが、解決策を見つけるために何年も費やしたので、エラーがどこにあるのか、そして問題の根源について興味があります. SSL リクエストを他の何百ものサーバーに送信しても、この問題は発生しませんが、この 1 つのサーバーは、リクエストを暗号化する必要があるというメッセージで応答するだけです。
LWP
一緒にNet:SSL
もっとサポートされていますか?
問題の根本をどのように追跡しますか?
編集: 興味深いことに、これは古いバージョンのモジュールでは発生しませんでした (最近は機能しました)。LWP か何かが更新されたのではないかと強く疑っています。アップデートでこのように動作が変わるのは奇妙です。
perl - ローカル SSL 証明書を無視しようとしています
Perl スクリプトを使用して、サードパーティ ソフトウェアを実行しているローカル マシンから情報を取得しようとしています。Web ブラウザーで表示できますが、自動化する必要があります。問題は、ソフトウェアのインストール時に作成された SSL 証明書が気に入らないように見えることです。
問題はないと私は言います。LWP:UserAgent に証明書を無視するように指示するだけです。うーん...同じエラー。
これが私が使用しているテストスクリプトです...
...そして、これが私が得る応答です...
ドキュメントで読んだことと、さまざまなフォーラムで見たアドバイスから、「verify_hostname」を false の値に設定すると、無効な証明書が無視されるようになるはずです。
私が欠けているものについて何か提案はありますか?
perl - LWP::UserAgent が TLS1.1 で投稿できない
https 経由で 500 ハンドシェーカー エラー:443 を取得しています。私が XML を送信しているホスト サービスは TLS 1.2 をサポートしていません。1.0 と 1.1 をサポートしています。現在、CentOS 6 で LWP 6.03 を使用しています。以下のコードを使用すると、私はまだ TLS1.2 を使用して送信していると主張しています。
ホストに送信されたときに TLS バージョンを印刷することはできますか? TLS1.1 を使用していることを確認するためにできることはありますか?
arrays - 配列参照を含む Perl LWP 匿名配列参照は、単一の要素を持つ配列として認識されます
小さな問題があります。私は LWP::useragent を使用しており、別のスクリプトに投稿しています。そのスクリプトでは、json 文字列と匿名配列で渡された複数のファイルに対していくつかのロジックを実行しています。渡していた複数のファイルを配列にプッシュし、それを匿名配列内の配列参照として渡そうとするまで、すべてがうまくいっていました。
catch スクリプトで、匿名からハッシュに渡されるパラメーターを読み取ります。次のような問題なくjson文字列パスにアクセスできます。
それから私はそれをデコードし、それで私が望むことをします。それはすべて良いことです. したがって、次のように配列参照にアクセスできると考えました。
も試した