我正在尝试使用Java URL输入流从网站读取文本:
URL u = new URL(str);
br3 = new BufferedReader(new InputStreamReader(u.openStream()));
while(true)
System.out.println(br3.readLine());
这似乎适用于大多数网站,但对于某些URL缩短服务,如LinkBee,该对象绘制空白。例如linkbee.com/FUAKF
。我可以使用资源管理器查看源代码,但是当我使用上面的代码时,我会反复获取null
。
答案 0 :(得分:2)
这是因为这些网站只是重定向服务。你是如何处理重定向的? (重定向有一个Location:标题,但没有正文)
答案 1 :(得分:0)
使用像commons:httpclient这样的http库,方法getResponseBodyAsStream
会自动重定向
答案 2 :(得分:0)
我只是想补充一点,对于某些网站,也可能有javascript可以将你重定向到另一个页面。像这样:
<script type="text/javascript">
<!--
window.location = "http://www.google.com/"
//-->
</script>
但在您的情况下,根据您获得空值的事实,标题会重定向您。只是觉得你可能也想要注意javascript的事情。
答案 3 :(得分:0)
确实它是一个重定向服务,但是我不需要实际遵循重定向,我只需要提取它重定向到的URL - 这可以在重定向网站本身的源代码中找到(在给定的情况,在第81行,输入类型='隐藏'id ='urlholder'值='http://www.megaupload.com/?d=02EBRUTT'。
不管我不认为该流应该给我一个完整的空白,除非它不读头,只有身体?