問題タブ [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 - 戻りデータを64kに切り捨てるJavaHttpClientまたはPostMethod
サーバーからデータを取得するためにApacheCommonsHttpClientを使用しています。私の問題は、返されるXMLデータが常に最初の64kに切り捨てられることです。これが関連するオブジェクトに制限を設定する場合にすぎないことを期待していましたが、明らかにそうではありませんでした。少なくとも、そのようなメソッドに関する情報は見つかりませんでした。サーバーは別の会社に属しており、おそらく他のすべての人に問題なくデータを提供しているため、これはクライアントの問題だと思います。
何か案は?
私のコードは非常に単純です:
fyi、getResponseBodyAsString()メソッドではなくInputStreamsを使用する次のコードでも同じことが起こります。
それで、どこかに制限が設定されているかどうか知っていますか?文字列が応答であるという事実は常に64kであるという事実は、存在しなければならないことを示唆しているようです。しかしここで?!
ありがとう
アラステア
java - commons-httpclientは、executeMethodの後にホストヘッダーからポート80を削除しました
指定されたホストとポートを使用してGETHTTPMethodを作成し、Httpclient.executeMethod()から実行しました。ただし、ホストがそれを受信するまでに、ポートはHTTP要求のホストヘッダーから切り捨てられます。
実行前のHttpMethodのホストヘッダー情報は次のとおりです。User-Agent:Me Host:stackoverflow.com:80
ホストが受信した時点:
ユーザーエージェント:Jakarta Commons-HttpClient / 3.1ホスト:stackoverflow.com
実行する前にHTTPClientでUser-Agentを設定できる投稿を見てきました。しかし、私はHostConfigurationを介してホストでそれを試しましたが、運がありません。誰かが以前にこの問題を見て、ホストが変更されないように解決しましたか?
これは、他のhttpclientパッケージを使用した場合、または別のポートにアクセスした場合には発生しません。
答えが見つかりました:Apache commons HttpClientを使用しているときに、リクエストの「Host」ヘッダーをオーバーライドするにはどうすればよいですか?
java - HttpClient 3.x から 4.x への移行
commons-httpclient-3.1 を使用して記述されたコードがあり、4.1 に変換する必要があります。私はこれに少し慣れているだけで、現在 4.1 httpclient チュートリアルを読んでいます。
ここにいくつかの投稿があります (たとえば、Converting from HttpClient 3 to 4ですが、それは特定の構造に関するものです)。3.x の使用を 4.x にアップグレードする方法を示すドキュメント/例がどこかにあるはずです。
具体的な例: org.apache.commons.httpclient.HttpState の使用を置き換える
java - Apache Http クライアントがタイムアウト後に応答待ちを再開する方法は?
executeMethod
サーバーの応答を受信するまでブロックする Apache Http クライアントを使用します。タイムアウトを設定できますが、タイムアウトの期限が切れると、クライアントは応答の待機を再開できないようです。
Apache Http クライアントがタイムアウト後に応答待ちを再開するようにすることはできますか?
java - Commons HttpClient getResponse に非常に長い 200 秒かかります
この方法では何も変更していませんが、突然非常に時間がかかります。以下のコード例では、このエラーが発生します。
編集:私は単一のJavaアプリケーションでメソッドを抽出し、ファイルをロードしようとしましたが、タイムアウトは同じです。3 または 4. 彼がこのループ HttpMethodBase:691 を通過するとき、彼は私のローカル PC で 500 秒間停止し、スレッドはスリープ状態になります。スリープ後、次の行はoutstream.close();
編集:自宅で試してみたい場合のコード例は次のとおりです:)(httpClient 3.1)
java - httpclient接続を再利用して複数の小さなファイルを取得する方法
httpclientを使用して、サーバーから複数の小さなファイルを継続的にダウンロードしています。そのため、新しい接続を割り当てるために多くの時間を費やさないように、httpclient接続を再利用したいと思います。
また、接続を再利用して、既存の接続のアイドルタイムアウトを3分に設定するためのクライアントコードがすでにいくつかあります。
ただし、サーバーからの応答には常に「Connection:close [\ r] [\ n]」が含まれ、httpclientライブラリはそのようなヘッダーに遭遇した直後に接続を解放します。
httpclientにサーバーからの応答を無視させるにはどうすればよいですか、またはどのヘッダーを投稿すると、サーバーがそのような終了ヘッダーを返さなくなる可能性がありますか?
java - JavaHTTPNTLM実装の違い
このリンクでは、さまざまなhttpクライアントのJava実装について詳しく説明しています。NTLMプロトコルの実装の違いに関する情報を提供できるリンクを探しています。
Windowsマシンの1つで、commons-httpクライアント3.1の実装が認証エラー(httpステータスコード401)で失敗するのに、java1.5の実装は成功することがわかりました。NTLM認証プロトコルのjava1.5実装はオープンソースではないため、2つの実装を比較して、何が問題になっているのかを理解することはできません。
アップデート1
commonshttpクライアントがNTLMv2をサポートしていないことを認識しています。このリンクは、さまざまなJava httpクライアントの実装間の比較を提供し、apachehttpクライアントがNTLMプロトコルの部分的な実装を提供することを示しています。それについては詳しく説明しません。
問題をさらにトラブルシューティングすると、このリンクとHTTPClientを組み合わせて提供されるNTLM実装がWindowsマシンで機能することもわかりました(コモンズhttpクライアントの実装は上記のように機能しません)。
アップデート2
(wireshackを使用して)パケットをスニッフィングすることにより、commonshttpクライアント3.1ntlmプロトコルの実装がタイプ3メッセージでNTLM応答を生成しないことに気付きました。これは、JDK実装によって生成されます。NTLM応答データが空の場合に認証が失敗することを示すサーバー/クライアント設定を知っていますか?(私たちが直面している認証の失敗は1台のマシンでのみ再現可能であるため、認証は他の場所で成功します。)
java - ApacheHttpClient4とJavaScript
ApacheHttpClientを使用してWebページにアクセスします。リンクをクリックしたいのですが、リンクはjavaScriptですが、javascriptリンクをクリックしてURLリダイレクトを処理するにはどうすればよいですか?
サンプルのjavascriptとhtmlコード:
java - HttpClient で GWT-RPC リクエストを送信するにはどうすればよいですか?
私は Apache HTTPClient API を使用して HTTPRequests を送信していますが、これまでのところ、標準のリクエストで動作しています。GWT-RPC リクエストを送信してレスポンスを表示したいのですが、GWT-RPC サーバーから常に次のエラーが表示されます。
実際には、リクエストとともに次のデータを送信する必要があります。
しかし、方法がわかりません。
FireBug からリクエスト コードを取得すると、投稿領域に上記のデータがソースとして表示されます。
java - HttpClient:チャンクエンコーディングを無効にする
私はApacheCommonsHttpClientとRestletを使用して安らかなWebサービスを呼び出しています。残念ながら、私のサーバー(Ruby on Railsに基づく)はTransfer-Encoding: chunked
、HttpClientがデフォルトで使用しているものを好みません。
クライアントからのPOSTのチャンクエンコーディングの使用を無効にする方法はありますか?