問題タブ [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.

0 投票する
5 に答える
13043 参照

.net - C# で TcpClient を使用する非常に奇妙な HTTP クライアント

Web サーバーに接続してデフォルトのホームページを取得する単純な HTTP クライアントを実装しています。ここにあり、うまく機能します:


上記のコードから以下の行を削除すると、プログラムはsr.ReadToEndでブロックされます。

sr.ReadToEndsr.Readに置き換えましたが、何も読み取れません。Wireshark を使用して、何が起こっているかを確認しました。

Wireshark を使用してキャプチャされたパケットのスクリーンショット http://www.imagechicken.com/uploads/1252514718052893500.jpg

ご覧のとおり、GET リクエストの後、Google は応答せず、リクエストは何度も再送信されます。HTTP リクエストでHost部分を指定する必要があるようです。奇妙な部分は、WE DON'T です。telnetを使用してこのリクエストを送信すると、Google から応答がありました。telnet から送信されたリクエストもキャプチャしましたが、それは私のリクエストとまったく同じでした。

他の多くの Web サイト (Yahoo、Microsoft など) も試しましたが、結果は同じです。

では、telnet の遅延によって Web サーバーの動作が異なるのでしょうか (telnetでは、文字を 1 つのパケットにまとめて送信するのではなく、実際に入力するため)。


別の奇妙な問題は、HTTP/1.0HTTP/1.1に変更すると、プログラムが常にsr.ReadToEnd行でブロックされることです。これは、Web サーバーが接続を閉じていないためだと思います。

1 つの解決策は、Read (またはReadLine ) とns.DataAvailableを使用して応答を読み取ることです。しかし、すべての回答を読んだかどうかはわかりません。応答を読み取って、HTTP/1.1 要求の応答にバイトが残っていないことを確認するにはどうすればよいですか?


注: W3 が言うように、

Host request-header フィールドは、すべての HTTP/1.1 リクエストに付随する必要があります

(そして、HTTP / 1.1リクエストに対してそれを行いました)。しかし、 HTTP/1.0ではそのようなことは見たことがありません。また、telnet を使用してHostヘッダーなしでリクエストを送信しても、問題なく動作します。


アップデート:

TCP セグメントでプッシュフラグが 1 に設定されています。TCP/IP スタックをリセットするためにnetsh winsock resetも試しました。テスト コンピューターには、ファイアウォールもウイルス対策もありません。別のコンピュータにインストールされた Wireshark がパケットをキャプチャできるため、パケットは実際に送信されます。

また、他のリクエストもいくつか試しました。例えば、

すべての種類のリクエストで、Host:の部分を省略した場合、Web サーバーは応答しません。また、 Host : の部分を省略した場合、無効なリクエスト (上記のリクエストと同様) でさえ応答されます (400: HTTP によって)。要求の形式が正しくありません)。

nosHost:の部分は彼のマシンでは必要ないと言っており、これが状況をより奇妙にしています。

0 投票する
4 に答える
3673 参照

java - Javaを介してWebサイトにログインする方法は?

私はJavaを介してWebサイトにログインするいくつかの方法を試しました。watijやHTMLunitなどを使ったことがありますが、なじみがないためログインできません。

誰かがJavaを介してログインする方法を詳しく教えてもらえますか

具体的には、ORKUTにログインして、ログイン後に表示されるページのページソースが必要です。

0 投票する
2 に答える
16435 参照

java - REST および HttpClient を使用した Facebook API へのアクセス

RESTful Web サービスとHttpClientを使用してFacebook API REST サーバーにアクセスします。

REST および Facebook API の初心者です...

質問:

検証/承認

(1) クライアント アプリから送信されたセッション キーを持っている場合、ユーザーが存在することを確認して認証し、サーバー側でそのユーザーの友人を照会するにはどうすればよいですか?

これらの Facebook RESTful エンド ポイントにアクセスするにはどうすればよいですか。

http://wiki.developers.facebook.com/index.php/Users.getInfo

http://wiki.developers.facebook.com/index.php/Friends.getLists

HTTP GET リクエストを介して? つまり、パラメータを含む完全な URL はどのように見えるでしょうか?

(2) API を取得するための完全な RESTful URL はどのようになりますか?

友達のウォールに投稿する

(3) 検証/承認後、ユーザーの友人にクエリを実行した後、どの API を使用して Friend's Wall に投稿しますか?

(4) Facebook RESTful サーバーの URL に追加する必要がある追加のパラメーターはありますか?

HTTP クライアント

(5) HttpClient を介して Java プログラム内にこれらの Facebook API への RESTful Web サービス呼び出しを含めますか?

楽しいプログラミングと、これを読んでくれてありがとう...

0 投票する
2 に答える
16967 参照

java - Facebook: セッション キーを取得するときに、正しくない署名 (104) を取得する

セッションキーを取得してユーザーを確認するために、(Facebook API の REST エンドポイントを呼び出すために) HttpClientライブラリを使用しようとしています...

私のコードはここにあります:

JUnit テストを実行すると、コンソールから次のように出力されます。

それは私のMD5Utilsコードでしょうか:

間違った署名を生成するために何が間違っている可能性がありますか?

誰かが私を助けてくれたり、正しい方向に向けてくれたりしてくれたら本当にありがたいです...

幸せなプログラミングと読んでくれてありがとう!

0 投票する
1 に答える
1793 参照

java - ウェブサイトにログインするには?

Java プログラムを使用してORKUTにログインしたいと考えています。私はそれを行うために次のプログラムを使用しています。どっかのサイトからコピペしました。今はORKUTで使いたいです。しかし、いくつかの行についていくつか質問があります。

Q1. ログインページの URL を指定する場所 (新しい HTTPGET(".....") だと思います)? 私は正しいですか?

Q2. HTTPPost("") のコンストラクターに渡す引数は何ですか。ログイン Web ページの html ソースの「form」要素の「action」属性の値を渡す必要がある場合は、確認してください。

Q3. ORKUT ログイン ページの "form" 要素には、次の属性があります。

上記の属性が存在するため、次のコードを変更する必要がありますか?

Q4. ログイン後に Web ページの HTML ソースを取得するにはどうすればよいですか?

0 投票する
1 に答える
3528 参照

java - Java: HttpClient での自動 Cookie 処理?

Java HttpClient機能リストでは、次のように述べています。

サーバーから Set-Cookie: ヘッダーを読み取り、必要に応じて Cookie: ヘッダーでそれらを送り返すための自動 Cookie 処理。

しかし、この機能の使い方がわかりません。Web ページを開いてすべての Cookie を設定し、同じページを受信した Cookie で更新するだけです。

ありがとう。

0 投票する
4 に答える
970 参照

java - HttpClientを使用した異なるスレッドの同じURLへの接続

JavaでHttpClientを使用して複数のスレッドでURLのコンテンツを取得する正しい方法は何ですか?

たとえば、アイテムを含むリストをロードし、各アイテムを異なるスレッドに同時にロードし、異なるパラメータを使用して同じURLから情報を取得します。

私が作成しているアプリケーションでは、異なるスレッドで同じURLからXMLを読み取るときに、要素が見つからないという例外が発生しません。

0 投票する
1 に答える
5101 参照

java - ThreadSafeClientConnManager接続プールからの接続をキャンセル/中止します

私のアプリケーションには複数のスレッドがあり、それらが同時にWebサーバーに接続しているため、ThreadSafeClientConnManagerを使用してクライアント接続のプールを管理しています。

抽象サンプルコード:

ここで、このスレッドの1つが大きなファイルをダウンロードしているとしましょう。しかし、私のアプリケーションのユーザーは別のアクティビティ/画面に切り替えています。そのため、ファイルは不要であり、このダウンロード接続を中止したいと思います。

ThreadSafeClientConnManagerで、次のメソッドを見つけました。

public ClientConnectionRequest requestConnection (HttpRoute route, Object state) 新しいClientConnectionRequestを返します。この要求から、ManagedClientConnectionを取得したり、要求を中止したりできます

これまで私が使用してきたもの:

今私が理解していることから、私は使用する必要があります:

httpclient.getConnectionManager().requestConnection(HttpRoute route, Object state);

そして、それは私が立ち往生しているポイントです。ルートについてはnew HttpRoute(new HttpHost("10.0.0.1"))、サーバーが何であれ、そのまま使用できると思いますが、何を入力すればよいObject stateでしょうか。

そして第二に、ClientConnectionManager私が電話をかけるとすぐにgetConnection(long timeout, TimeUnit tunit)。しかし、そこから、HttpGet httpRequest = new HttpGet(URL_TO_FILE);以前と同じようにどのように実行しHttpResponse response = (HttpResponse) httpclient.execute(httpRequest);ますか?

私はドキュメントを読み、かなりの数の異なることを試しましたが、実用的な解決策を得ることができませんでした。そのため、提案やコード例は大歓迎です。

0 投票する
4 に答える
259 参照

java - RubyにJava httpclientのようなライブラリがいくつかありますか

ruby に Java httpclient のようなライブラリがあるか知りたいです。まことにありがとうございます。

0 投票する
1 に答える
27688 参照

java - java.lang.NoSuchMethodError:org.apache.http.protocol.BasicHttpContext:メソッド()Vが見つかりません

こんにちは私は小さなウェブアプリを設置しようとしていますが、上記のエラーが発生しています。以下は私のコードです

httpclient-4.0-beta2.jarとhttpcore-4.0.1.jarを使用しています。BasicHttpContextがアプリ内の他のjarと競合しているようですが、理解できませんでした。手がかりがあれば幸いです。