タグ付けされた質問 「apache-commons-httpclient」

10
非推奨のJava HttpClient-どれほど難しいか
私がやろうとしているのは、JSONをダウンロードしてオブジェクトに逆シリアル化することだけです。まだJSONをダウンロードしていません。 私が見つけることができるほとんどすべてのHttpClientの例は、Apacheサイトにあるものも含めて、次のようなものです... import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; public void blah() { HttpClient client = new DefaultHttpClient(); ... } ただし、Netbeansによると、これDefaultHttpClientは非推奨です。私はDefaultHttpClient deprecated考えられる限り多くのバリエーションを試してみましたが、有用な結果が見つからないため、明らかに何かが欠けています。 Webページのコンテンツをダウンロードする正しいJava7の方法は何ですか?言語の一部としてまともなHttpクライアントは本当にありませんか?それを信じるのは難しいと思います。 これに対する私のMavenの依存関係は... <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>LATEST</version> <type>jar</type> </dependency>

30
HttpClientロギングを無効にする
統合テストスイートでcommons-httpclient 3.1を使用しています。HttpClientのデフォルトのロギングは非常にノイズが多く、オフにできないようです。私はここの指示に従いましたが、どれも違いはありません。 ほとんどの場合、私はorg.apache.http.wireロガーをシャットダウンする必要があります。問題の一部は、HttpClientがどのタイプのロガーを使用しようとしているのかわからないことであり、問​​題のほとんどは、このライブラリを使用したことがないことです。log4j.propertiesファイルを作成してtest / resourcesフォルダーにドロップし、jre / libのマスターlogging.propertiesファイルを変更して、さまざまなロギングオプションをロギングページで指定されたMavenに送信しましたが、どれも実行しませんでした。違いを生む。 どんな助けもありがたいです...これは私を狂わせます。 更新:訂正:問題の出力は、実際にはjwebunitによるHttpClientの使用によるものであり、私自身によるものではないようです。いずれにしても、それは望ましくありません。 更新:これまでの試みをありがとう。以下に提案されているすべてを試しましたが、まだうまくいきません。私のsrc / test / resourcesフォルダーにcommons-logging.propertiesファイルがあり、次の内容が含まれています org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory log4j.configuration=log4j.properties そして、同じフォルダにあるファイルlog4j.propertiesに次の内容が含まれています log4j.rootLogger=ERROR, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n #This is the line that should make httpclient shut up log4j.logger.org.apache.http=ERROR ただし、テストを実行しても、次のような出力が得られます。 21:57:41.413 [main] DEBUG org.apache.http.wire - << " [\r][\n]" 21:57:41.413 [main] DEBUG org.apache.http.wire - << …

3
Apache HttpClientを使用してJSONリクエストをPOSTする方法
私は次のようなものを持っています: final String url = "http://example.com"; final HttpClient httpClient = new HttpClient(); final PostMethod postMethod = new PostMethod(url); postMethod.addRequestHeader("Content-Type", "application/json"); postMethod.addParameters(new NameValuePair[]{ new NameValuePair("name", "value) }); httpClient.executeMethod(httpMethod); postMethod.getResponseBodyAsStream(); postMethod.releaseConnection(); 500で戻ってきます。サービスプロバイダーは、JSONを送信する必要があると言っています。Apache HttpClient 3.1以降ではどのように行われますか?

5
マルチスレッド環境でHttpClientを使用するためのベストプラクティス
しばらくの間、私はマルチスレッド環境でHttpClientを使用してきました。すべてのスレッドについて、接続を開始すると、完全に新しいHttpClientインスタンスが作成されます。 最近、このアプローチを使用すると、ユーザーが開いているポートが多すぎて、ほとんどの接続がTIME_WAIT状態になる可能性があることを発見しました。 http://www.opensubscriber.com/message/commons-httpclient-dev@jakarta.apache.org/86045.html したがって、各スレッドの代わりに: HttpClient c = new HttpClient(); try { c.executeMethod(method); } catch(...) { } finally { method.releaseConnection(); } 私たちは持っている予定です: [方法A] // global_c is initialized once through // HttpClient global_c = new HttpClient(new MultiThreadedHttpConnectionManager()); try { global_c.executeMethod(method); } catch(...) { } finally { method.releaseConnection(); } 通常の状況では、global_cは50 ++スレッドによって同時にアクセスされます。私は疑問に思っていました、これはパフォーマンスの問題を引き起こしますか?MultiThreadedHttpConnectionManagerは、ロックフリーメカニズムを使用してスレッドセーフポリシーを実装していますか? 10個のスレッドがglobal_cを使用している場合、他の40個のスレッドはロックされますか? または、すべてのスレッドでHttpClientのインスタンスを作成し、接続マネージャーを明示的に解放するとよいでしょうか。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.