日期:2014-05-18  浏览次数:20745 次

用url打印特定网页的源代码出问题
代码如下:


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class PrintPage {
public static void main(String[] args) {
String url_str="http://game.qq.com?ADTAG=media.innerenter.qqcom.indexnavigation";
new PrintPage().show(url_str);
}
public void show(String url_str){
URL url=null;
InputStream is=null;
URLConnection urlc=null;
BufferedReader br=null;
try {
url=new URL(url_str);
urlc=url.openConnection();
urlc.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1)  AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22");
is=urlc.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
String temp="";
while((temp=br.readLine())!=null)
{
System.out.println(temp);
//Thread.sleep(1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}


运行之后返回的结果如下:
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>


返回400 Bad Request,,这段代码用来打印别的页面没什么问题但打印代码里给的那个就出问题,,球解答
URL Java

------解决方案--------------------
400,就是你访问的资源部存在,返回400很正常,不知道你说的是哪里出现问题。。
腾讯的这些页面都是动态的,今天又明天就没有很正常
------解决方案--------------------
url换为响应后的,http://game.qq.com/index.shtml
------解决方案--------------------
StringBuffer context = new StringBuffer();try {
String line;
URL url = new URL("http://game.qq.com?ADTAG=media.innerenter.qqcom.indexnavigation");
BufferedReader reader = new BufferedReader(new InputStreamReader(
url.openStream(), "utf-8"));
while ((line = reader.readLine()) != null) {
if (!line.equals(""))
context.append(line);
}
reader.close();
网页的内容都在context里面了