問題タブ [apache-httpcomponents]
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 - gwt-devにはhttpclient4.0が含まれています。Maven環境でこれを回避するにはどうすればよいですか?
私のプロジェクトはhttpcore4.1を使用しています...gwt-dev2.3jarには4.0が含まれています...これは上位互換性がありません。4.0をjarからハックして、Mavenをだましてそれを使用させると、ジェネレーターが機能し、コードは追加の変更なしでコンパイルされます。再現可能なビルドを作成するように、Mavenリポジトリをハッキングせずにこれを行うにはどうすればよいですか?gwtビルドにジェネレーターを追加したいだけの場合、本当に完全なgwt-dev jarが必要ですか?私は何かが欠けているに違いない...
java - Java - DefaultHttpClient と "Host" ヘッダー [Apache HttpComponent]
DefaultHttpClient を介して複数の HTTP リクエストを送信しています。問題は、リクエストに「Host」ヘッダーが設定されていないことです。たとえば、次の GET リクエストを実行します。
生成されたリクエスト オブジェクトは、必須の「Host」ヘッダーに次の値を設定しません。
任意のヒント?
java - サーブレットから POST リクエストを中継するために Apache Http コンポーネントを使用するにはどうすればよいですか?
私はサーブレット API と Apache Http コンポーネントの両方に少し慣れていません。
私が実装した HttpServlet.doPost() を使用して、未知のデータ (おそらくフォーム送信の結果) を含む着信 POST 要求を処理し、別の URL から同じ投稿された情報を要求し、効果的に中継として機能する必要があります。 HTTP ポスト。次に、応答を文字列 (text/html になります) に変換し、それをさらに処理してから、応答を要求した Web ブラウザーに返す必要があります。
これらのライブラリに慣れていないため、投稿されたデータの content-type などの問題を処理する方法や、リソースの解放を怠ったことによる問題の回避方法が明確ではありません。
誰でもこれに関する指針を提供できますか?
java - Apache HttpCore、受信した投稿データをエコーするシンプルなサーバー
ここにある ElementalHttpServer サンプル クラスを使用します。
投稿データを正常に受信できました。私の目標は、受信した投稿データを印刷可能な文字列に変換することです。次のように HttpFileHandler を変更し、eneity.getContent() を使用して inputStream を取得しましたが、inputStream を文字列に変換する方法がわかりません。
}
アイデアをありがとう
java - Java: HttpComponents は、特定の URL からの入力ストリームからゴミの応答を取得します
現在、HttpComponents に HttpRequests を送信して Response を取得させようとしています。ほとんどの URL ではこれは問題なく動作しますが、phpBB フォーラムの URL、つまりhttp://www.forum.animenokami.comを取得しようとすると、クライアントの処理に時間がかかり、responseEntity に複数のパッセージが含まれているため、エラーが発生します。 html ファイル。
たとえば、メタ タグは 6 回含まれています。他の多くの URL が機能するため、何が間違っているのかわかりません。ページは既知のブラウザで正しく機能しているため、ブラウザ側の問題ではありません。
これが私が送受信に使用するコードです。
あなたが私を助けてくれることを願っています。さらに情報が必要な場合は、できるだけ早く提供できるように努めます。
java - EntityUtils.toString() が例外を返したときに HttpEntity の String 値を取得する方法はありますか?
悪い HTTP 応答 (400 など) が返されるが、HttpResponse オブジェクト内の HttpEntity を確認できないという状況に陥り続けています。デバッガーをステップ実行すると、エンティティにコンテンツ (長さ > 0) が含まれていることがわかり、コンテンツを見ることもできますが、表示されるのは数字の配列 (ASCII コードだと思いますか?) だけです。役に立った。エンティティで EntityUtils.toString() を呼び出しますが、IOException、または何らかの「オブジェクトが無効な状態にある」例外のいずれかの例外が返されます。これは本当にイライラします!このコンテンツを人間が読める形式で取得する方法はありますか?
これが私のコードです:
例外をスローする場所を参照してください。私がやりたいのは、HttpEntity のコンテンツを吸い出し、例外に入れることです。
java - HttpComponents で配列パラメーターをポストする方法
このコマンドを Apache http-components (4.1.2) で実行したい
ターゲット API には、string および string-keys パラメーターが array として必要です。これは、パラメーターごとに string []およびstring-keys[]を繰り返すことを意味します。
このcurlコマンドは正常に動作しますが、Httpコンポーネントを使用すると、まったく同じパラメーターが得られます.
多分私は何か間違ったことをしています。
POST パラメータは次のようになります。
それらをcurlの --data の後ろに置くと機能しますが、HttpCponentsでは機能しません。誰かが私に理由を説明できますか?
前もって感謝します
java - httpcomponentsを使用して単一の接続で複数の要求を処理しますか?
単一の接続を使用してクライアントデバイスと通信したい。
接続を維持するのに問題があります。DefaultConnectionReuseStrategy()を使用しています。これは、各要求の後にkeepAlive()に対してfalseを返すため、接続は常に閉じられます。ConnectionヘッダーをKeep-Aliveに設定しましたが、それでも常に接続が閉じられます。
2番目の問題は、keepAlive()をオーバーライドして常にtrueを返す場合、入力ストリームの読み取り中にクライアントがブロックすることです。これをどのように処理する必要がありますか?どれだけ読むべきかを知るために、コンテンツの長さのヘッダーを読む必要がありますか?コンテンツの長さが指定されていない場合はどうなりますか?
java - HTTP クライアント サーバー、BasicResponseHandler() でクライアント側の接続を閉じているとは思わない
httpclient実装からの投稿を受け入れることができるApache HTTPCoreを使用して実装されたサーバーがあります。サーバーに送信し、投稿コンテンツを処理し、クライアントで応答を返すことができるように、十分に機能しています。すべてが機能しているように見えますが、クライアント接続が正常に完了したにもかかわらず、サーバーがタイムアウトになるまで接続を維持していることに気付きました。応答を受信した後、クライアント側で接続を閉じる必要があると想定していBasicResponseHandler()
ますが、を使用しているString
ため、すでにそれを行っていると思います。実際に近い。
これについて何か考えはありますか?を返す別の応答ハンドラーを使用してみて、それがInputStream
機能するかどうかを確認するつもりでしたが、それが をBasicResponseHandler
返すので、すでに舞台裏でそれを行っていると思いましたString
java - ドメインをIPアドレスに解決し、証明書と一致しないApache HttpClient
Apache HttpComponents HttpClient ライブラリ (4.0.2) を使用すると、証明書が適切に検証されないという問題が発生します。証明書はドメイン名 (example.com と呼びましょう) に対して有効ですが、代わりに IP アドレスに対して検証されています。
証明書のホスト名が一致しませんでした: <123.123.123.123> != <*.example.com>
接続を確立するための私のコードは次のとおりです。
証明書自体は、Web ブラウザー経由で接続するときに有効であると表示され、接続先のドメイン名に対して有効です。
CN = *.example.com
証明書は Java キーストアにも追加されます (regular を使用してテスト済みHttpsURLConnection
)。
このコードがドメイン名の代わりに IP アドレスを使用する理由はありますか?