大家好!作为一名IT新人,发现网上有很多牛人都在写博客,一方面是把自己的知识分享给大家,一方面是通过这个来提成技术,所以小弟也想利用这种方式来提高自己的技术,我认为这个方法真的不错!废话不多说,进入正题!
下面就说说httpUrlConnection的类的简单联网,在这之前先提醒大家,先设置一个联网的权限:
在项目的menifest.xml中加上这么一句代码: <uses-permission android:name="android.permission.INTERNET"/>,就哦了嘛!
class HttpUtil{
//方法一:读到的数据一字符串的形式返回;
//urlPath代表我们将要访问的资源路径;
public static String getDataFromUrl(String urlPath) throws Exception{
//根据urlPath获取URL对象;
URL url=new URL(urlPath);
//通过url来获取HttpUrlConntection的实例;
HttpUrlConntection conn=url.openConnection();
//设置读写
conn.setDoInput(true);
conn.setDoOutput(true);
//设置写数据和连接超时的时间;
conn.setReadTimeout(3000);
conn.setConnectTimeout(3000);
//从conn中获取字节输入流
BufferedReader br=new BufferedReader(new InputStreamRead(conn.getInputStream()));
byte[] data=new byte[1024*10];
String len;
StringBuffer sb=new StringBuffer();
while((len=br.readLine())!=null){
//读到的数据写到StringBuffer中去;
sb.append(len);
}
br.close();
return sb.toString();
}
方法二:以字节数组的形式返回读到的数据
//urlPath代表我们将要访问的资源路径;
public static String getDataFromUrl(String urlPath) throws Exception{
//根据urlPath获取URL对象;
URL url=new URL(urlPath);
//通过url来获取HttpUrlConntection的实例;
HttpUrlConntection conn=url.openConnection();
//设置读写
conn.setDoInput(true);
conn.setDoOutput(true);
//设置写数据和连接超时的时间;
conn.setReadTimeout(3000);
conn.setConnectTimeout(3000);
//从conn中获取字节输入流
BufferedReader br=new BufferedReader(new InputStreamRead(conn.getInputStream()));
byte[] data=new byte[1024*10];
String len;
ByteArrayOutputStream bs=new ByteArrayOutputStream();
while((len=br.readLine())!=null){
bs.write(data,0,data.lenght());
}
br.close();
return bs.toByteArray();
}
当然上面的方法都是耗时的操作,使用的时候都要开启新的线程,在新的线程中来执行,然后用handler来通知ui线程更新UI或者啥的,也可以用异步任务类AsynTask来操作。
}