我在运行代码时遇到问题,在打开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请求之后。
请帮忙。谢谢。
答案 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/
首先,检查您的回复是否已写入错误。