我调用getResponseCode()时程序停止运行

时间:2017-05-31 11:23:11

标签: java http netbeans connection httpresponse

我在运行代码时遇到问题,在打开HTTP请求后我试图检索响应代码,但程序停止在print语句上运行 以下是我的代码:

private static HttpURLConnection openHttpConnection(URL url, String method){
try {
HttpURLConnection connection = null;
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(method);
connection.setRequestProperty("Content-Type", 
"application/json;charset=UTF-8");
connection.setRequestProperty("Accept", "application/json");
System.out.println(connection.getResponseCode());
}
catch (Exception exception) { 
exception.printStackTrace();
}

程序在最后一行停止,当我在彼此之后打开许多HTTP请求时出现问题。 注意:当我调试相同的代码时,它适用于配音而不是运行。 此问题也出现在8个HTTP请求之后。

请帮忙。谢谢。

3 个答案:

答案 0 :(得分:0)

您是否将这些代码行放在try / catch块中? 可能会引发异常,捕获它以获取堆栈跟踪将有助于获取信息。 此外,获得有关执行上下文的更多信息会更方便:这是什么类型的应用程序, url 来自哪里,等等。

答案 1 :(得分:0)

  • 如果您的程序最后一行(即JVM退出)停止而不打印任何响应代码,则会出现异常< getResponseCode()抛出strong>必须。此异常很可能会告诉您问题所在。正如Javert0指出的那样,你发现这个异常的地方取决于你的环境 - 最坏的情况是抓住任何异常并自己打印出来......

  • 如果您的程序在最后一行挂起connection.getResponseCode()可能无法从服务器获得响应并等待超时。

  • 由于在请求响应代码(connection.connect())之前没有明确的connection.getResponseCode(),问题几乎可以是任何事情:超时(无响应的服务器/网络/ DNS / ...),结果无效,缺少权限,......

答案 2 :(得分:-1)

服务器可能正在发送垃圾......或者只是关闭连接。那个时候发生了错误。

或者有些时候响应没有来,或者当时是空的,这是错误的。

https://nazimkuet.wordpress.com/2015/03/16/how-to-get-http-response-code-for-a-url-in-java/

首先,检查您的回复是否已写入错误。