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

一、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即可。

android和网络连接相关的类URL,URLConnection,HttpURLConnection,HttpClient的更多相关文章

  1. Android OkHttp网络连接封装工具类

    package com.lidong.demo.utils; import android.os.Handler; import android.os.Looper; import com.googl ...

  2. android 判断网络连接的工具类

    package com.way.util; import android.content.Context; import android.net.ConnectivityManager; import ...

  3. Android检测网络连接

    Android检测网络连接 import android.app.AlertDialog; import android.content.Context; import android.content ...

  4. android当前网络连接类型判断

    package net.nyist.netState; import android.content.Context; import android.net.ConnectivityManager; ...

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

    获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.AC ...

  6. Android 检测网络连接状态

    Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置. 首先,要判断网络状态,需要有相应的权限,下面为权限代码(Androi ...

  7. 深入学习Android有关网络连接的内容

    基于实际项目中碰到的些许问题,开始重新深入学习Android网络连接有关知识. Android的4.1.2版本的AndroidHttpClient模块setSoTimeout之后实际超时时间和设置的时 ...

  8. android检测网络连接状态示例讲解

    网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置   Android连接首先,要判断网络状态,需要有相应的权限,下面为权限代码(Andro ...

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

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

随机推荐

  1. ubuntu 安装 TensorFlow、opencv3 的 tips

    安装tensorflow: 创建tensorflow虚拟环境 conda create -n  tensorflow python=2.7 输入命令查看可用版本的tensorflow-gpu cond ...

  2. 分位数回归及其Python源码

    分位数回归及其Python源码 天朗气清,惠风和畅.赋闲在家,正宜读书.前人文章,不得其解.代码开源,无人注释.你们不来,我行我上.废话少说,直入主题.o( ̄︶ ̄)o 我们要探测自变量 与因变量 的关 ...

  3. WebSocket的使用(基于VUE与SpringBoot)

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 We ...

  4. npm学习(二)之如何防止权限错误

    如何防止权限错误 如果您在尝试全局安装包时看到EACCES错误,请阅读本章.如果更改安装npm的目录,通常可以避免此错误.要做到这一点,要么使用版本管理器重新安装npm(推荐)或手动更改npm的默认目 ...

  5. mybatis映射文件mapper详解

    mapper.xml映射文件主要是用来编写sql语句的,以及一些结果集的映射关系的编写,还有就是缓存的一些配置等等. 1.<select>元素 <select>元素就是sql查 ...

  6. Linux学习--第十天--bash脚本、用户自定义变量、环境变量、位置参数变量、预定义变量、标准输入输出、wc、history、dd、PS1

    shell简介 分为两种c shell 和b shell b shell:sh.ksh.Bash.psh.zsh: (Bash和sh兼容,linux基本shell是Bash) c shell:csh. ...

  7. C语言之带有数量可变的宏参数#define

    1.定义格式如下 #define PR(...)  printf(__VA_ARGS__) ...表示可变参数,__VA_ARGS__的作用是替换省略号的内容. 2.示例 #define ERROR( ...

  8. C++ STL(一)string的用法

    # 1.string的用法- string在<iostream>的头中就有,但是还是得用<string>的头 ##### 构造函数- str(const char* ch) 直 ...

  9. 关于Python你不得不知道的Python语言特点

    首先什么是语言?什么是编程? 准确来说是:定义计算机程序的语言,用来向计算机发送指令 个人理解:   语言:是一种交流的工具或者方式.比如我们的汉语普通话.各地的方言.外语中的英语.俄语.日语等.我们 ...

  10. MyBatis:Parameter Maps collection does not contain value for 的问题解决

    Result Maps collection does not contain value for   frontpreviewprofitManage.cdata 出现上述错误 主要是因为你的sel ...