无需第三方的网络下载 GET请求
来源:互联网 发布:mac 安装adobe字体 编辑:程序博客网 时间:2024/04/28 05:32
不带handle的方法
public class NetWorkUtils {public static byte[] getBytes(String path){InputStream is =null;ByteArrayOutputStream baos =null;//TODO 下载图片//params[0]:可变参数的第一个值就是我们要下载的网址try {URL url = new URL(path);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");if (connection.getResponseCode() == 200) {is = connection.getInputStream();baos = new ByteArrayOutputStream();int len = 0;byte [] buffer = new byte[1024];while((len = is.read(buffer)) != -1){baos.write(buffer, 0, len);}byte[] bytes = baos.toByteArray();return bytes;}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {is.close();baos.close();} catch (IOException e) {e.printStackTrace();}}return null;}}
///带handle的下载/** * 网络下载的工具类 */
/** * 网络下载的工具类 */public class HttpUtils { public static final int TIMEOUT = 10000; //使用handler,负责将回调运送到主线程 private final static Handler handler=new Handler(); /** *网络下载通过回调,奖数据传递过去,回调的字节数组 * @param path 下载的地址 * @param listener 回调接口 */ public static void get(final String path, final OnFetchDataListener listener){ //如果其中一个为空,表示下载条件不成熟 if (TextUtils.isEmpty(path)||listener==null){ return; } //开启一个线程,在线程里面执行下载图片的操作 new Thread(new Runnable() { @Override public void run() { try { URL url=new URL(path); //打开地址的连接,用的http协议 HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(TIMEOUT); connection.setConnectTimeout(TIMEOUT); connection.connect();//开启连接 if (connection.getResponseCode()== HttpURLConnection.HTTP_OK){ //当值为200表示下载成功 InputStream is=connection.getInputStream(); final byte[] ret=is2ByteArray(is); if (ret!=null){ handler.post(new Runnable() { @Override public void run() { listener.onFetch(ret); } }); } } } catch (Exception e) { //打印异常 System.out.println("======>"+e.toString()); e.printStackTrace(); } } }).start(); } /** * 强输入流转为字节数组 * @param is 输入流 * @return 字节数组 */ private static byte[] is2ByteArray(InputStream is) { byte[] ret=null; if (is==null){ return ret; } ByteArrayOutputStream bos=null; try{ bos=new ByteArrayOutputStream(); int len=0; byte[] buffer=new byte[1024]; while ((len=is.read(buffer))!=-1){ bos.write(buffer,0,len); } ret=bos.toByteArray(); }catch (Exception e){ System.out.println("============>"+e.toString()); e.printStackTrace(); }finally { try { bos.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } } return ret; } //网络数据接口的回调 public static interface OnFetchDataListener{ void onFetch(byte[] data); }}
}
1 0
- 无需第三方的网络下载 GET请求
- 第三方网络请求的封装
- okhttp 第三方 网络数据请求 异步get请求 和异步post请求 同步请求
- android无需第三方sdk的分享
- 对第三方框架AFNetworking网络请求的使用浅析
- iOS 网络请求的第三方比对
- 归纳笔记012:第三方网络请求AFNetworking的使用
- 归纳笔记013:第三方网络请求ASIHTTPRequest的使用
- go get 下载第三方包
- ASIHTTPRequest第三方网络请求详解
- iOS第三方网络请求框架--AFNetworking
- Volley第三方请求网络数据
- iOS网络请求总结、GET、POST、同步、异步代码块、异步代理、第三方AFNetWorking2.0使用
- 无需第三方sdk支持的定位功能实现
- iOS NSURLSession网络请求(get/post/下载)
- HttpClient 发送post和get请求 调用第三方webservice
- httpcilent连接第三方接口请求(post,get)
- golang如何下载go get不下来(被墙)的第三方包
- css百事可乐
- IOS学习之iOS开发中用户密码应该保存在哪里
- 查找与排序之二分法查找篇(C语言实现)
- 采用认证方式连接mongodb
- 23种设计模式全解析
- 无需第三方的网络下载 GET请求
- mongodb的备份与还原
- Java类加载机制——如何实现一个工程中不同模块加载不同版本的同名jar包。
- Android中5大数据存储(四)---ContentProvider
- 基础知识
- hdu1031Design T-Shirt
- [offer收割]编程联系赛2-A 买零食
- C# 事件与委托详解
- Linux基础(三)