Java 获取URL的内容

2016-02-19 10:26 6 1 收藏

下面是个Java 获取URL的内容教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

Java获取URL内容的,我这里只给出GET方式的,POST和其它方式的都是比较类似的。其技术要点就一下三点。
第一:创建HttpURLConnection
第二:打开URL,创建一个InputStream
第三:逐行(逐字节)读取,如果需要,转换编码,放入字符串。
好,一下就开始代码吧:
代码如下:

public String getUrlContent(String path){
String rtn = "";
int c;
try{
java.net.URL l_url = new java.net.URL(path);
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
l_connection.setRequestProperty("User-agent","Mozilla/4.0");
l_connection.connect();
InputStream l_urlStream = l_connection.getInputStream();
while (( ( c= l_urlStream.read() )!=-1)){
int all=l_urlStream.available();
byte[] b =new byte[all];
l_urlStream.read(b);
rtn+= new String(b, "UTF-8");
}
//Thread.sleep(2000);
l_urlStream.close();
}catch(Exception e){
e.printStackTrace();
}
return rtn;
}

其中
l_connection.setRequestProperty("User-agent","Mozilla/4.0");
这句是必须的,很多服务器对于没有User-agent头的请求直接403了就。
然后采用InputStream.available()来一次性读取,返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数,如果需要的话,可以在后面稍微Sleep一下线程:
Thread.sleep(2000);
其中的
代码如下:

while (( ( c= l_urlStream.read() )!=-1)){
int all=l_urlStream.available();
byte[] b =new byte[all];
l_urlStream.read(b);
rtn+= new String(b, "UTF-8");
}

是个很重要的读取过程,c表示读取流的标注,当结束的时候是-1,然后all是本次循环可用的最大字节数目,然后读取全部可用字节到byte[] b中,然后转换成UTF-8类型的字符串,注意,这里可以自己写方式,如果读取GB2312,就要写GB2312,至于有没有万能的,可以获取Meta,匹配下。自己想办法吧。

来源:http://www.tulaoshi.com/n/20160219/1594627.html

延伸阅读
标签: Web开发
note.xml中的内容 ?xml version="1.0" encoding="gb2312"? channel item title新浪/title linkhttp://www.sina.com.cn/link /item item titlegoogle/title linkhttp://www.google.cn/link /item item title百度/title linkhttp://www.baidu.com/link /item /channel index.asp中的内容 % h=GetLocationURL()'获取当前地址 h1=Split(h...
最近在做一个图片上传的功能,需要提供上传图片在SD卡中的路径,在网上看了些例子,改改调试成功,代码很简单。其布局文件如下: 代码如下: ?xml version="1.0" encoding="utf-8"? LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" a...
tomcat本地地址 E:soft4developapache-tomcat-6.0.18 System.getProperty("user.dir")//E:soft4developapache-tomcat-6.0.18bin System.getProperty("catalina.home")//E:soft4developapache-tomcat-6.0.18对于jboss同样适用。其他容器未做测试。 说道这里,正好有朋友在群里头问了个问题,情景式这样的 登陆需要用Https...
中文问题,是在应用中常常遇到的问题。 这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码。但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码。 在这里介绍一种解决方法,可以在任何应用部署环境下通用。此方法分两步: 1、在客户端用...
标签: Web开发
函数如下: script type="text/javascript" function $G(){ var Url=top.window.location.href; var u,g,StrBack=''; if(arguments[arguments.length-1]=="#")    u=Url.split("#"); else    u=Url.split("?"); if (u.length==1) g=''; else g=u[1]; if(g!=''){    gg=g.split("...

经验教程

141

收藏

77
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部