HttpUrlConnection的联网用法

来源:互联网 发布:单片机交流群 编辑:程序博客网 时间:2024/06/01 09:19

大家好!作为一名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来操作。


}


0 0
原创粉丝点击