問題タブ [httpsurlconnection]

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

java - Java アプリケーションから HTTPS URL にアクセスする方法

これは非常に基本的な質問であることは知っていますが、この問題の解決策を見つけることができなかった方法もあります。main メソッドを持つ Java クラスがあります。その方法では、以下のように https URL にアクセスしようとします。

このプログラムを実行すると、次のような出力が得られます。

私はここで非常に基本的な間違いをしていると思います。

JDK 1.7.0_25 を使用しています。

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

android - お使いのブラウザは、このサーバーが HttpsURLConnection を理解できないというリクエストを送信しました

コードに表示されるリンクから情報を取得するログインアプリを作成しています。私の問題は、ログ ファイルに「400 Bad request. Your browser sent a request that this server could not understand. [...] Server at idp.tut.fi Port 443」が表示されることです。

その上、そのリンクは、認証用の SHA1 と鍵交換用の RSA を使用して RC4_128 を処理しますが、これらのプロトコルをコード内のどこに適用できるかはよくわかりません。

ご協力いただきありがとうございます!

これは私のコードです:

}

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

android - Android - HttpsURLConnection が機能しない

この AsyncTask は、Android Phone の HttpsURLConnection を介して json の小さな断片を送信するために作成しました。LogCat で例外をスローしていません。しかし、私の Node.JS サーバー (HTTPS!) はリクエストを受け取りません。このコードの何が問題になっていますか? ご返信ありがとうございます!

ログ出力:

解決策: 望まなくても、応答を取得する必要があります。「NetworkCommunication::DataOutputStream」の後にこのコードを追加したところ、うまくいきました!

0 投票する
0 に答える
260 参照

java - Android アプリで Web サイトにログインできない

Eclipse (Android v. 4.3) で作成している Android アプリを使用して大学の Web サイトに接続し、資格情報を提供してから、ログインしたままクラスのスケジュールをダウンロードしようとしています。これらのフォーラムを何日も検索し、さまざまな方法を試しました。

Java で HtmlUnit を使用して、このタスクを簡単に実行できます。Web サイトにアクセスしてログオンし、必要なデータがあるページに移動できます。ただし、HtmlUnit は、恐ろしい dalvikvm 1 エラーを引き起こす依存関係を持つ多くの外部ライブラリを使用するため、Android アプリではうまく機能しません。

Jsoup、HttpsURLConnection、および HtmlClient との接続を試みました。私が試した方法はすべて同じ結果になりました。つまり、Web サイトのデータを「取得」することはできますが、「投稿」することはできません。Cookie の設定を試みました。コードは AsyncTask にあり、マニフェストのインターネット アクセス許可が設定されていることを確認しました。

ここに私が試したいくつかのサンプルコードがあります:

HtmlClient の試行:

Log.d 出力:

Jsoup の試み:

Log.d 出力:

System.err 出力:

HttpsURL 接続試行:

Log.d 出力:

これに表示される html は、ログインせずに " https://star.wvu.edu/pls/starprod/bwskcrse.P_CrseSchdDetl " にアクセスしようとすると得られるものです。つまり、ログイン プロンプトです。

すべての試行で同じ結果が得られます。必要な Web サイト、つまりhttps://star.wvu.edu/pls/starprod/twbkwbis.P_WWWLoginを「取得」し、その HTML を表示できますが、「投稿」することはできません。 404 File Not Found エラーが返されるため、ログイン情報が含まれていません。

私は Android と http 接続が初めてで、頭がいっぱいです。誰か助けてもらえますか?

編集:

Android の外部で、HtmlUnit を使用した作業コードを次に示します。

そしてそれは出力です:

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

java - HttpsURLConnection から Responsecode を取得できません

URL から応答コードを取得しようとしています:

ネットワーク内の複数の URL でこれを試しました。一部の人にとっては、うまく機能します。レスポンスコードを完璧に教えてくれます。ただし、他のリンクを使用すると、401 が表示され (Chrome 経由でアクセスできる場合でも)、次のエラーが表示されます。

認証の問題かもしれないと思いました。したがって、「urlConnection」を作成した後、次のコードも追加しました。

ただし、それでも 401 が返され、上記と同じエラー メッセージが表示されました。

この問題の原因についてのアイデアや情報は素晴らしいでしょう。前もって感謝します。

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

java - HTTP クライアントは接続を閉じる必要があります

XML 形式で応答するサーブレットがあります。

クライアントは、httpsURLConnection を介してこのサーブレットに接続します。クライアントが呼び出さない場合、問題はありますconnection.disconnect()か?

このシナリオに従ってみましょう:

クライアントはユーザー名とパスワードを投稿する必要があります。成功した場合、彼は のような新しいパラメーターを投稿できますtask=getSomeData,...etc。切断する前に。

接続ごとに、クライアントは新しい httpsession になります。

クライアントが connection.dissconnect() を呼び出さない場合、セッション タイムアウト後に接続は自動的に閉じられますか? そうでない場合は、いつですか?どれくらい生きているだろう?「切断されていない」接続が非常に多い場合、サーバーの問題ですか?

更新: サンプル クライアント

クライアントはタイムアウトを設定しません。この場合、このクライアントが disconnect() を呼び出さない場合、サーバーでどのタイムアウトが使用されるでしょうか? サーブレット コンテナ コネクタのタイムアウト? ただし、これを変更すると、このコンテナー内のすべてのアプリケーションに影響します。

デフォルトの Tomcat コネクタのタイムアウトは 20000 = 2 分です。これは、開いている接続を最大 2 分でしか使用できないということですか? 2 分後に自動切断されますか?

どうもありがとう。

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

java - HttpsURLConnection - 断続的な接続拒否エラー

Java アプリケーションと HttpsURLConnection 実装を介して Web サービスに接続しています。接続を開き、try with resource ブロックを使用して入力ストリームと入力ストリーム リーダーを開き (終了したら閉じます)、finally ブロックで connection.disconnect を呼び出します。コードは以下にあり、ほとんどの場合動作します。

ただし、このコードは複数のスレッドによって 1 秒間に数回呼び出される可能性があります (ただし、実際に含まれているメソッドは同期されているため、一度に 1 つのスレッドしか接続にアクセスできません)。ネットワーク担当者と協力して作業を行ったところ、アプリケーションが「connection.disconnect()」を呼び出しても、サーバー上で接続がすぐに切断されないことがわかりました。サーバー ログに切断の呼び出しが表示されますが、サーバーが完全に切断される前に Java アプリケーションが再接続を試み、「接続拒否エラー」が発生します。

再度接続する前にJava経由で完全に切断するか、切断が呼び出されたときにサーバー設定を介して強制的に切断する方法はありますか? または、エラーの可能性を減らすために、より速く実行する方法はありますか? 接続が成功するまで接続を再試行できますが、それはハックのようです。

誰かが私を正しい方向に向けるのを手伝ってくれますか?

更新 - 2013年 1 月 6日 - 調査を続けたところ、tcpdump を読んで、クライアントが 100 回のリクエストで同じポートに接続していて、101 回目のリクエストでポートが変更され、エラーが発生することがわかりました。接続は最終的に回復し、新しいポートでリクエストの送受信を開始しますが、回復するまでに最大 1 分かかる場合があります。以下にtcpdumpを含めました。クライアントが新しいポートで送信すると、宛先 IP が新しいポートで「R」eset を返すことがわかります。このため、エラーは宛先でのエラーの結果であり、クライアントからではないと考えていますが、このレベルでの理解が限られているため、まだ検証しようとしています.