黑马程序员技术交流社区
标题:
问个URL问题
[打印本页]
作者:
谭荣强
时间:
2014-4-2 23:12
标题:
问个URL问题
老毕说这样能打开baidu,我的怎么没反应啊
import java.io.*;
import java.net.*;
class URLConnectionDemo
{
public static void main(String[] args) throws Exception
{
URL url = new URL("http://www.baidu.com.cn");
URLConnection uc = url.openConnection();/
}
}
作者:
leon_hm
时间:
2014-4-2 23:28
能打开,我试了,你把返回的字符打印出来看看就知道。
作者:
残梦共飞雪
时间:
2014-4-3 00:23
本帖最后由 残梦共飞雪 于 2014-4-3 00:25 编辑
能打开,但是你没有写任何输出语句。不带HTTP会有异常,facebook被墙,它才无法访问。
public static void main(String[] args) throws Exception
{
URL url = new URL("http://www.baidu.com.cn");
URLConnection uc = url.openConnection();
System.out.println("baidu:"+uc.getContentType());
uc = new URL("http://facebook.com/").openConnection();
System.out.println("facebook:"+uc.getContentType()); // 输出:facebook:null
}
复制代码
作者:
Engle
时间:
2014-4-3 08:31
你这样写是看不出什么效果的,我把你的代码扩展下,
以get方式访问百度,并且抓取百度主页面html源代码
public static void main(String[] args) throws Exception
{
URL url = new URL("http://www.baidu.com.cn");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//以get方式访问百度,并将百度html页面的源码返回
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36");
int code = connection.getResponseCode();
if(code==200){
InputStream inputStream = connection.getInputStream();
try {
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte[] bs=new byte[1024];
while((inputStream.read(bs, 0, bs.length))!=-1){
bos.write(bs);
}
inputStream.close();
byte[] byteArray = bos.toByteArray();
String result=new String(byteArray);
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
不得不说,
真实开发的时候这种访问服务器的耗时操作,是要开启子线程来弄的。
作者:
谭荣强
时间:
2014-4-3 19:05
在看看 。
作者:
多一点
时间:
2014-4-3 21:10
本帖最后由 多一点 于 2014-4-3 21:12 编辑
你的代码改下加几行:
这样就能拿回百度服务器给你回来的信息 import java.io.*;
import java.net.*;
public class URLConnections {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com");
URLConnection uc = url.openConnection();
System.out.println(uc);//协议sun.net.www.protocol.http.HttpURLConnection:http://www.baidu.com
BufferedReader buffr=
new BufferedReader(new InputStreamReader(uc.getInputStream()));
String line=null;
while((line=buffr.readLine())!=null){//读取百度返回的信息
System.out.println(line);
}
}
}
作者:
谭荣强
时间:
2014-4-6 19:57
多一点 发表于 2014-4-3 21:10
你的代码改下加几行:
这样就能拿回百度服务器给你回来的信息 import java.io.*;
import java.net.*;
拿到了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2