Java 从网站读取和打印HTML会挂断

Java 从网站读取和打印HTML会挂断,java,html,Java,Html,我一直在编写一些Java代码,其中字符串被转换为URL,然后用于下载和输出相应的URL。不幸的是,当我运行程序时,它只是挂断了。有人有什么建议吗 注意:我使用了import java.io.*和import java.net* public static boolean htmlOutput(String testURL) throws Exception { URL myPage2 = new URL(testURL); //converting String to URL S

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

注意:我使用了import java.io.*和import 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()
[虽然此答案有助于OP,但它是错误的。
HttpURLConnection
因此这不可能是OP的问题。我将在OP删除接受标记后立即删除它。]

我的猜测是,由于您尝试连接的页面向您发送重定向响应(即302),因此您不会在响应流中返回任何内容

尝试通过读取响应代码并迭代响应头来验证这一点。应该有一个名为
Location
的标题,其中包含您需要遵循的新url

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

// iterate over the map and find new url 
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
int code=connection.getResponseCode();
Map Map=conn.getHeaderFields();
//在地图上迭代并找到新的url
如果您在使用上述代码段时遇到问题,请查看


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

使用
jSoup
,这将非常容易。调试说明了什么?它挂在哪里?您如何定义“挂起”?是否有任何错误,或者它只是开始然后在打印任何东西之前完成?您使用了哪个测试url,我可以使用http[colon][slash][slash]www[dot]google[dot]com作为测试url运行此程序。@eggHunter我很高兴它为您解决了问题。请不要忘记接受正确的答案:)经过一些调查,我发现我的代码确实有效,但你是对的,有一个奇怪的重定向内置。我仍然可以通过代码重定向抓取页面,错误位于我发送方法的字符串中。它有一个笨拙的引号。@eggHunter嗯,实际上我们不可能都是对的。正如我现在看到的,默认情况下,
HttpURLConnection
可以处理这个问题。它有一个用于
setFollowRedirects()
的方法,应该能够获取html。您能否确认您的原始代码正常工作,问题出在您使用的url上?如果是,我将删除我的答案,因为它是wrong@eggHunter你能接受这个答案吗?系统不允许我删除它,只要它被接受