我一直在研究一些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()
答案 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客户端,否则你应该手动执行此操作。