問題タブ [httpurlconnection]

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 投票する
2 に答える
3124 参照

java - Java httpurlconnectionがhtmlを切断する

Twitter のプロフィール ページから html を取得しようとしていますが、httpurlconnection は html の小さなスニペットしか返しません。私のコード

各呼び出しの応答コードとして常に 200 を取得します。ただし、約 1/3 の時間で HTML ドキュメント全体が返され、残りの半分は最初の数百行のみが返されます。html が切り捨てられたときに返される金額は常に同じではありません。

何か案は?助けてくれてありがとう!

追加情報: ヘッダーを表示した後、コンテンツの長さのヘッダーが重複しているようです。1 つは完全な長さで、もう 1 つははるかに短いです (おそらく、私が時々得ている長さを表しています)。重複したヘッダーを処理するにはどうすればよいですか?

0 投票する
3 に答える
29224 参照

java - Java での永続的な HttpURLConnection

お気に入りの Web コミックを自動的にダウンロードして名前を付ける Java プログラムを作成しようとしています。同じドメインから複数のオブジェクトを要求するので、すべてのコミックがダウンロードされるまで開いたままにできる永続的な http 接続が必要でした。以下は私の進行中の作業です。新しい http 接続を開かずに、同じドメインで別のパスから別のリクエストを行うにはどうすればよいですか?

0 投票する
6 に答える
54856 参照

android - HttpUrlConnection.openConnectionが2回失敗する

この問題はSystem.setProperty( "http.keepAlive"、 "false");で修正する必要があることを私は知っています。openConnectionの前に、しかしそれは私にはうまくいきませんでした。このコードを最初に試してみるとうまくいき、2回目は失敗します。5秒以内にこのリクエストを試しても、機能します。それ以上待つとまた失敗します

これは私のコードです:

最後の行で例外が発生します:

誰かがここで何が悪いのかについて考えを持っていますか?ありがとう!

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

java - JavaでWebサイトのHTMLを取得するのに助けが必要

私はjavahttpurlconnectionからhtmlを切り取っていくつかのコードを取得しましたが、JavaのWebサイトからhtmlをフェッチするためのコードとほとんど同じです。このコードを機能させることができない特定のWebサイトを除いて:

このWebサイトからHTMLを取得しようとしています。

http://www.geni.com/genealogy/people/William-Jefferson-Blythe-Clinton/6000000001961474289

しかし、私はジャンク文字を取得し続けます。それはhttp://www.google.comのような他のウェブサイトで非常にうまく機能しますが。

そして、これは私が使用しているコードです:

上記のURLで動作しない理由がわかりません。

どんな助けでもありがたいです。

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

java - Java: 送信前に HttpURLConnection のリクエストを表示する

を使用してサーバーへの API 呼び出しを行いたいと考えていますHttpURLConnection。しかし、リクエストは成功せず、以下を返します:

したがって、サーバーに送信されている「実際の」コンテンツが何であるかを確認したいと思います。実際のコンテンツとは、正確な HTTP リクエストを意味します。

どうすればこれを見ることができますか?

編集: ここでの最初の回答に基づいて、問題を明確にする必要があります: HTTP スニファーなどの外部プログラムの使用を避けたいのですが、探している情報を保持する関数やプロパティなどがあることを望んでいました。

そうでない場合、誰かがこの情報を手動で再構築できるかどうかを知っていますか (たとえば、getRequestMethod() などのいくつかの関数を呼び出すことによって)。

私はこの問題に頻繁に直面しているので、そのような機能を自分で構築する努力をする価値があります。方法を知る必要があります:)

0 投票する
6 に答える
29666 参照

network-programming - HttpURLConnection の実装

HttpURLConnection は永続的な接続をサポートしているため、接続を複数のリクエストで再利用できることを読みました。私はそれを試してみましたが、2 番目の POST を送信する唯一の方法は、openConnection をもう一度呼び出すことでした。それ以外の場合、IllegalStateException("Already connected"); が発生しました。私は以下を使用しました:

2 番目の要求は同じ TCP 接続を介して送信されます (wireshark で検証済み) が、disconnect を呼び出したので理由がわかりません (ただし、これが必要です)。HttpURLConnection のソース コードを確認したところ、実装によって同じ宛先への接続のキープアライブ キャッシュが保持されます。私の問題は、最初のリクエストを送信した後、接続がどのようにキャッシュに戻されるかを確認できないことです。切断すると接続が閉じられますが、切断がなければ、接続がキャッシュにどのように戻されるかわかりません。キャッシュにはすべてのアイドル接続を通過する run メソッドがあることがわかりました (どのように呼び出されるかはわかりません) が、接続がキャッシュに戻される方法がわかりません。発生しているように見える唯一の場所は httpClient の finished メソッドにありますが、これは応答のある POST では呼び出されません。誰でもこれについて私を助けることができますか?

EDIT 私の興味は、tcp接続の再利用のためのHttpUrlConnectionオブジェクトの適切な処理は何ですか。入力/出力ストリームを閉じる必要があり、その後に url.openConnection(); が続きます。新しいリクエストを送信するたびに(disconnect()を回避)?はいの場合、接続が最初のリクエストのキャッシュから削除され、返される方法を見つけることができないため、2 回目に url.openConnection() を呼び出したときに、接続がどのように再利用されているかを確認できません。接続がキープアライブ キャッシュに返されない可能性はありますか (バグ?)、OS は tcp 接続をまだ解放しておらず、新しい接続では、OS はバッファリングされた接続 (まだ解放されていません) を返しますか? EDIT2 私が見つけた唯一の関連はJDK_KeepAliveからのものでした

... アプリケーションが URLConnection.getInputStream() によって返された InputStream で close() を呼び出すと、JDK の HTTP プロトコル ハンドラは接続をクリーンアップしようとし、成功した場合は、将来の HTTP リクエストで再利用できるように接続を接続キャッシュに入れます。 .

しかし、これがどのハンドラーであるかはわかりません。私が見たように、sun.net.www.protocol.http.Handler はキャッシュを行いません ありがとう!

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

java - サーバーからの予期しないファイルの終わり

これが私のコードです

このようなjspファイルのURLを渡そうとすると、このようなエラーメッセージが表示されます(http://kart3:7890/sample/sample.jsp

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

java - getContentLength()は、一部のデバイスでは-1を返し、他のデバイスでは返しません

ダウンロードする前にファイルのサイズを取得しようとしています。私conn.getContentLength();はこれを行うために使用し、自宅のコンピューターのAndroid2.1エミュレーターで正常に動作します。

ただし、スマートフォン(WiFiまたは3G)からアプリを実行すると機能しません。また、仕事用のラップトップAndroid2.1Emulatorからアプリを実行しても機能しません。

誰かがこれの回避策を知っていますか?おそらくを使用せずにファイルのサイズを取得できる別の方法はありますかHttpURLConnection

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

java - HttpURLConnection.getResponseCode() が 1 を返すのはなぜですか?

HTTP 接続を開き、それにデータを書き込み、応答コードを取得する Java コードがあります。接続に問題がなかったため、HTTP_OK (つまり 200) が返されるはずですが、1 が返されています。

1 は HTTP 応答コード仕様のどこにも表示されないため、これは不可解です。潜在的な問題領域について誰かアイデアを出してもらえませんか?

以下はコードの一部です:

出力

受信した応答コード: 1

0 投票する
3 に答える
2997 参照

java - HttpsURLConnection 接続の問題

私は解決できないように見える HttpsURLConnection に問題があります。基本的に、私はいくつかの情報をサーバーに送信しています。そのデータの一部が間違っている場合、サーバーは 500 応答コードを送信します。ただし、応答で、データのどのビットが間違っていたかを知らせるメッセージも送信します。問題は、メッセージを読み込んだときにメッセージが常に空であることです。これは、ストリームを読み取る前に常に filenotfound 例外がスローされるためだと思います。私は正しいですか?エラーストリームも読み込もうとしましたが、これは常に空です。ここにスニペットがあります: