从网站读取和打印HTML挂起

时间:2013-08-16 14:24:07

标签: java html

我一直在研究一些Java代码,其中字符串被转换为URL,然后用于下载和输出其相应的URL。不幸的是,当我运行该程序时,它只是挂断了。有没有人有任何建议?

注意:我使用了import java.io. *并导入了java.net。*

public static boolean htmlOutput(String testURL) throws Exception {
    URL myPage2 = new URL(testURL); //converting String to URL
    System.out.println(myPage2);
    BufferedReader webInput2 = new BufferedReader( 
    new InputStreamReader(myPage2.openStream()));
    String individualLine=null; 
    String completeInput=null; 

    while ((individualLine = webInput2.readLine()) != null) {
        //System.out.println(inputLine);
        System.out.println(individualLine);
        completeInput=completeInput+individualLine;
    }//end while
    webInput2.close();
    return true;
}//end htmlOutput()

1 个答案:

答案 0 :(得分:0)

[虽然这个答案对OP有帮助但是错了。 HttpURLConnection does follow redirects所以这不是OP的问题。 OP会在删除接受的标记后立即将其删除。]

我的猜测是,您在响应流中没有得到任何回复,因为您尝试连接的页面会向您发送重定向响应(即302)。

尝试通过阅读响应代码并迭代响应标头来验证这一点。应该有一个标题为Location的标题,您需要关注

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int code = connection.getResponseCode();
Map<String, List<String>> map = conn.getHeaderFields(); 

// iterate over the map and find new url 

如果您无法将上述代码段工作,请查看working example

你可以帮自己一个忙,并使用像Apache Http client这样可以处理重定向的第三方http客户端,否则你应该手动执行此操作。