无法连接到服务器,getResponseCode()returns-1

时间:2013-11-05 21:47:20

标签: java httpurlconnection getresponse

大家好,我正在下载经理项目中工作。

我正在测试一些链接并且工作正常,但我发现了一个问题

以下这两个链接来自emupardise,我将使用它只是为了说明我的观点。

如果我使用此代码:

     String GameLink = "http://www.emuparadise.me/roms/get-download.php?gid=43269&token=2f91d51fcd8b90cec75193ffd592f07c&mirror_available=true";
//    String GameLink = "http://www.emuparadise.me/roms/get-download.php?gid=43270&token=a6f395885bea3bbef73d972804d2cbdb&mirror_available=true";


             try {


URL url = new URL(GameLink);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Host" ,"www.emuparadise.me");
con.setRequestProperty("Accept" ,"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
con.setRequestProperty("Accept-Encoding" ,"gzip, deflate");
con.setRequestProperty("Referer" ,"www.emuparadise.me");
con.setRequestProperty("Connection" ,"keep-alive");



   System.out.println("Server answer :"+ con.getResponseCode());

con.connect();
InputStream is = con.getInputStream();
System.out.println(con.getURL().toString()+"\n");

is.close();

        } catch (IOException ex) {
            Logger.getLogger(Question.class.getName()).log(Level.SEVERE, null, ex);
        }

我得到的第一个:

“服务器答案:200”(就像我想要的那样),但是使用我得到的第二个链接:

“服务器答案:-1”然后我收到错误:java.io.IOException:无效的Http响应

我已经检查了两个页面中的标题并且它们是相同的,除了两个链接在Internet下载管理器中工作外,有谁可以请我提供解决方案?

非常感谢你的时间

1 个答案:

答案 0 :(得分:1)

根据getResponseCode()方法的javadoc

  

“如果无法从响应中识别出代码,则返回-1(即,响应无效HTTP)。”

这很可能是服务器端的问题。服务器可能正在发送垃圾......或者只是关闭连接,而不是使用正确的HTTP响应来响应您的请求。或者它可能是这样做的中间人;即代理或反向代理。


您应该尝试使用数据包监视器或其他东西来确定服务器响应中的实际内容。或者只是向网站维护者报告。