[解決済み] Java簡単なコード: java.net.SocketException: サーバーからの予期しないファイルの終了
2022-02-22 23:24:52
質問
私はJavaでいくつかの簡単なコードを書きました、メソッドはウェブサイトに接続し、BufferedReaderを返す必要があります。
private BufferedReader getConnection(String url_a) {
URL url;
try {
System.out.println("getting connection");
url = new URL(url_a);
HttpURLConnection urlConnection = (HttpURLConnection)
url.openConnection();
urlConnection.addRequestProperty("User-Agent",
"Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924"
+ "Epiphany/1.4.4 (Ubuntu)");
inStream = new InputStreamReader(urlConnection.getInputStream());
return new BufferedReader(inStream);
} catch (Exception ex) {
Logger.getLogger(Reader.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
PCで使用すると問題なく動作するのですが、サーバーに.jarファイルを置くとこのようなエラーになります。
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:718)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:715)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1322)
at dataconverter.Reader.getConnection(Reader.java.260)
毎回例外が発生するわけではなく、すべてがうまくいき、プログラムがうまく動作することもあるので、問題はかなり奇妙です。
どなたか思い当たる方はいらっしゃいますか?
解決方法は?
予期しないファイルの終了は、リモートサーバーが接続を受け入れ、応答を送信することなく閉じたことを意味します。リモートシステムが忙しすぎてリクエストを処理できないか、ネットワークのバグで接続がランダムに切断される可能性があります。
サーバーにバグがある可能性もあります。リクエストの中の何かが内部エラーを引き起こし、サーバーは本来のHTTPエラーレスポンスを送信する代わりに、単に接続を閉じてしまいます。これは、リクエストに含まれるヘッダーの欠落や無効なヘッダー値が原因であることを示唆する人もいます。
入手可能な情報では、何が問題なのかを言うことは不可能です。もしあなたが問題のサーバーにアクセスできるのであれば、パケットスニッフィングツールを使って正確に送受信されたものを見つけ、サーバープロセスのログを見て、エラーメッセージがあるかどうかを確認することができます。
関連
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?
-
[解決済み】CreateProcess error=2, The system cannot find file specified.
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] Javaでプレーンテキストファイルを読み込む
-
[解決済み] Javaでファイルをbyte[]に変換する
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】破損したjarファイル
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み】intがnullであるかどうかを確認する方法
-
[解決済み】Javaの未処理例外について
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない