这几个类都是用于和服务器端的连接,有些功能都能够实现,关系是:

一、URL

URL标识着网络上的一个资源:该类包含一些URL自身的方法,如获取URL对应的主机名称,端口号,协议,查询字符串外,还有些方法:

openConnection()

Returns a new connection to the resource referred to by this URL.

final InputStream openStream()

Equivalent to openConnection().getInputStream(types).
final Object getContent(Class[] types)

Equivalent to openConnection().getContent(types).

二、URLConnection

该类可以设置相关的请求头参数,发送get或者post请求。
三、HttpURLConnection

URLConnection for http;提供了发送http请求及处理相应的更方便的方法。

四、httpClient

可以认为httpClient就死一个增强版的httpURLCnnection,后者可以做的事前者都可以做,不顾更关注与如何发送请求,接收响应,以及管理连接。

/*** 该方法能够将url指定的资源转换为byte数组* * @param path url对应的地址* @return 返回字节数组* @throws Exception*/public byte[] getUrlData(String path) throws Exception {URL url = new URL(path);// inputstream只能进行读取数据到内存(具体说就是内存中的变量),用于客户端接收服务器端的相应url.openConnection().setConnectTimeout(3000);InputStream is = url.openConnection().getInputStream();byte[] buffer = new byte[1024];//需要获得数组的时候,这个io流经常使用 ByteArrayOutputStream bos = new ByteArrayOutputStream();try {int len;while ((len = is.read(buffer)) > 0) {// 输出流是将内存中的数据(其实就是变量的数据)进行输出,可以输出到文件,转换为字节数组等
                bos.write(buffer);}return bos.toByteArray();} catch (Exception e) {return null;} finally {bos.close();is.close();}}

例如通过上述方法下载的图片对应的数组,如果希望显示在imageView控件上,借助于bitmap

Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);img.setImageBitmap(bitmap);//也可以直接从流中常见bitmap//BitmapFactory.decodeStream(is);

至于保存下载到的图片,借助于文件io,或者bitmap.compress即可。

转载于:https://www.cnblogs.com/bobodeboke/p/3140464.html

android和网络连接相关的类URL,URLConnection,HttpURLConnection,HttpClient相关推荐

  1. 第十一篇 ANDROID 系统网络连接和管理机制与架构

    一  网络连接功能介绍 ANDROID 系统网络连接和管理服务由四个系统服务ConnectivityService.NetworkPolicyManagerService.NetworkManagem ...

  2. Android判断网络连接是否可用,WiFi、移动数据是否打开等

    Android判断网络连接是否可用,WiFi.移动数据是否打开等 添加权限 <uses-permission android:name="android.permission.ACCE ...

  3. android ping网络连接服务器失败,Android 中网络连接检测和使用ping检测网络是否可访问...

    Android开发中网络相关的检测包括网络是否正常连接和网络已连接但是否可以正常访问两类. (1)其中最常用的就是网络连接是否正常的检测,具体的代码如下:ConnectivityManager con ...

  4. Android 中网络连接检测和使用ping检测网络是否可访问

    Android开发中网络相关的检测包括网络是否正常连接和网络已连接但是否可以正常访问两类. (1)其中最常用的就是网络连接是否正常的检测,具体的代码如下: ConnectivityManager co ...

  5. Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用

    1.建立网络连接的基本方式 Android中建立网络连接最主要的方式是利用HttpURLConnection,示例如下: public class HttpUtil {public static by ...

  6. android 检查网络连接状态实现步骤

     android 如何检查网络连接状态,是android开发中一个常见的问题,本文将介绍如何实现,需要的朋友可以参考下 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限 ...

  7. android异步网络连接开源:Android Asynchronous Http Client

    在github发现还有一个Android Asynchronous Http Client,发现也不错.基于异步方式执行android内置的apache httpClient组建,http请求在UI线 ...

  8. [android] android 获取网络连接信息

    效果图: 工具类 /** * 获取网络连接信息* * 根据NetworkInfo可以知道有很多的连接方式和信息* * ① 当没有任何可用网络的时候,networkinfo为null 判断network ...

  9. android 链接网络成功,Android之网络连接判断是否成功

    最近工作工程中遇到一个问题.问题很简单,这里做个笔记,Android进行网络联网的一些操作时,经常会对网络是否已经连接成功进行判断.我们通常会对wifi和移动网络进行判断,我们需要判断网络设备是否开启 ...

最新文章

  1. FD.io/VPP — NAT
  2. uclibc和glibc的差别
  3. 6.MYSQL视图的使用和管理
  4. bzoj1935: [Shoi2007]Tree 园丁的烦恼
  5. vue 实现 web端滚动刷新 自定义指令
  6. C#里枚举类型以及值引用和地址引用差别演示代码
  7. flutter中使用图标(含自制图标库方案)
  8. MYSQL 大数据性能优化
  9. 基于python的音乐推荐系统
  10. MP4视频播放问题(有声音无图像)分析与解决——FFmpeg视频处理教程
  11. 求多个数最大公约数、最小公倍数的一种变换算法
  12. 宏转录组研究成果荣登10分JHM
  13. MYSQL互为主从部署(Censo:6)
  14. matlab中repmat函数使用举例解释(会识字就能看懂)
  15. java中设置游戏的倒计时_java中关于倒计时的程序
  16. 05-如何选购电脑主板?小白装机简单易懂的电脑主板选购知识指南
  17. Fbx文件解析(一)——FBX SDK for Windows环境配置
  18. 动态规划-leetcode#97-交错字符串
  19. 樊登读书会2018年推荐书目汇总
  20. js键盘上下左右键如何触发function

热门文章

  1. [求助]请教一个问题!
  2. 数据结构—单链表(类C语言描述)
  3. java实现折半查找_java语言之实现折半查找算法
  4. views 多个文件夹 netcore_优化 .net core 应用的 dockerfile
  5. 滴滴滴,测试工程师简历模板分享一波
  6. DeFi预言机Umbrella Network与BSC上去中心化杠杆交易协议WOWswap达成合作
  7. 英国FCA将比特币ATM加入未注册加密业务名单
  8. 以太坊Solidity发布0.8.3版本
  9. mysql事务、视图
  10. java 动手动脑