問題タブ [apache-commons-httpclient]
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 - 負荷がかかっている状態で HttpClient を使用しているときに BindException/開いているファイルが多すぎます
各スレッドが対応する URL を 1 秒ごとにポーリングする 1000 個の専用 Java スレッドがあります。
スレッドは 1 秒ごとに実行されます。
問題は、ジョブを 1 秒ごとに実行すると、次のようなランダムな例外が発生することです。
しかし、2 秒以上ごとにジョブを実行すると、すべて正常に実行されます。
shutDown() を使用して SimpleHttpConnectionManager() のインスタンスをシャットダウンしようとしましたが、効果はありませんでした。
netstat を実行すると、数千の TCP 接続が TIME_WAIT 状態にあることがわかります。これは、それらが閉じられており、クリアされていることを意味します。
したがって、接続数を制限するために、HttpClient の単一インスタンスを使用して、次のように使用してみました。
しかし、ちょうど 2 時間実行した後、「開いているファイルが多すぎます」というメッセージがスローされ始め、最終的には何もできなくなります。
許可される接続数を増やして機能させることができるはずですが、悪を長引かせるだけです。上記のような状況で HttpClient を使用するベストプラクティスは何ですか?
ところで、私はまだ HttpClient3.1 を使用しています。
java - ApacheHttpClientダイジェスト認証
基本的に私がする必要があるのはダイジェスト認証を実行することです。私が最初に試したのは、ここで入手できる公式の例です。しかし、それを実行しようとすると(いくつかの小さな変更を加えて、Getメソッドの代わりにPost)、
これが失敗したとき、私は使用しようとしました:
最初は、「レルム」と「ノンス」のDigestSchemeパラメーターのみをオーバーライドしました。しかし、サーバーで実行されているPHPスクリプトには他のすべてのパラメーターが必要であることが判明しましたが、それらを指定するかどうかに関係なく、authenticateSchemeはauthenticate()メソッドを呼び出したときにAuthorizationRequestPrepertyでそれらを生成しません。また、PHPスクリプトはHTTP応答コード200を返し、PHPスクリプトにはcnonce、nc、およびqopパラメーターが必要であるというメッセージが表示されます。
私はこれに2日間苦労してきましたが、運がありません。すべてに基づいて、問題の原因はPHPスクリプトにあると思います。アプリが不正にアクセスしようとしても、チャレンジは送信されないように見えます。
誰かアイデアはありますか?
編集:もう1つ、cURLで接続してみましたが、機能します。
java - HttpClient - 「グローバル」ソケット タイムアウトの設定、およびリクエストごとの個別のタイムアウト
HttpClient を使用して、次のようにデフォルトのソケット/接続タイムアウトを設定しています。
リクエストごとにこれらの値を上書きできるかどうか疑問に思っていますか?
編集:これは機能しますか?
試してみましたが、タイムアウトが発生する状況をテスト/作成するのは難しいです。
java - commonshttpクライアント-ネゴシエーション中のkerberosトークンに\r\ n(キャリッジリターンラインフィード)文字が含まれている
jakartacommonshttpクライアントを使用しようとしています。サーバーと通信するためにKerberos認証を実行します。認証は常に失敗します。深く掘り下げてみると、Kerberosトークンヘッダーにキャリッジリターンラインフィード文字が含まれていることがわかりました。これが問題の根本的な原因です。なぜ\r\ n文字が含まれているのですか、それが問題なのはなぜですか?
java - コモンズを使用したJavaの問題-httpclient-3.X.jar
commons-httpclient-3.0.jarからcommons-httpclient-3.1.jarに渡す必要がありますが、jarを変更するとコードが機能しなくなります。問題は、新しいライブラリが渡されたURIを自動的にエンコードすることです。これを回避する方法はありますか?Yahoo APIを操作する必要があり、URIをエンコードしないでください。エンコードしないと、サービスにアクセスできません。ここに私のコードのスクラッチがあり、渡されたURIと使用されたURIの違いを観察する2つの印刷行を比較しています。
そしてこれは出力です:
getMethodが失敗しました:HTTP /1.1401禁止
coppia:oauth_problemsignature_invalid
特に:
%26&oauth_version->%2526&oauth_version
と
xoauth_lang_pref = "en-us"-> xoauth_lang_pref =%22en-us%22
java - HttpClientバージョン3から4に切り替える理由
私のJavaアプリケーションはHttpClient3を使用して開発されています。バージョン4に切り替える利点はありますか?
変更ログはありますか?記事、ブログエントリ、または何が新しいかを説明する何か?
java - ヘルプ。PostMethod.getStatusCode()を実行して例外を取得しています!
ここでNullポインターを取得している理由を理解できませんでした:System.out.println(method.getStatusCode()); !?メソッドが初期化され、正常に実行されました。何か案は?サンプルコードはこちら。コモンズを使用しています-httpclient-3.1.jar
android - AndroidでapachecommonsHttpClientのロギングを有効にする方法
私が使用した通常のJavaアプリケーションでApacheCommonsHttpClientのログを有効にするには:
しかし、AndroidではLogCatにログが表示されません。
私は何かが足りないのですか?
java - postMethod のスプーフィング (Java の apache)?
私はこれにかなり慣れていないので、私を非難しないでください。
Postmethod をモックして、返されるステータスを設定できるようにしようとしています。たとえば、PostMethod を 200 に設定したいとします。
これを行う理由は、インターネットに接続せずにコンピューターをモックしようとしているからです
前もって感謝します
java - Java HTTP Post 生データ
私が持っている生データを指定して、HTTP 投稿要求を作成しようとしています。私は解決策を探すのにしばらく時間を費やし、いくつかの試みを行いましたが、少し助けを求めています. 私がやろうとしていることの PHP コードは次のようになります。
私の試みはこれでした:
そして、postMethod を実行しますが、これは単にデータを含まない投稿です。誰かが私がしていることに何か問題があると思いますか? このメソッドを変更して実際に機能させる方法を見つけたいと思います。ありがとう!
-ケン