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

一、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. P1550打井

    这是USACO2008年的一道最小生成树题,感谢dzj老师那天教的图论. 要引渠让每一个村庄都可以接到水,然后从某一个村庄到另一个村庄修剪水道要花费w元,并且还要打井(至少一个)(而输入数据也包括了在 ...

  2. opencv学习之等待按键事件-waitKey函数

    文章来源: https://mangoroom.cn/opencv/opencv-learning-waitKey.html 序 waitKey函数属于opencv函数里既常用又非常基础的函数,无论是 ...

  3. qt json操作

    json文件结构形式 {    "xiao1": [        {            "000100": {                " ...

  4. 创建Django项目的过程

    1.创建Django项目根目录 a.命令式创建法:Django-admin startproject 项目名称 b.pycharm创建法:如下图 2.配置setting环境 a.配置静态文件 STAT ...

  5. 清北学堂提高突破营游记day1

    上午7点半到的国防宾馆,8点开始的培训. 讲课人林永迪. 没错就是这个人: 他推荐的教辅:刘汝佳紫书,算法导论(也就看看..),刘汝佳白书 先讲模拟.(貌似就是看题论题. 然后贪心. 贪心没有固定的模 ...

  6. dubbo 2.8.4(dubbox)的jar包制作【添加到maven本地仓库】

    1. 下载 网址:https://github.com/hongmoshui/dubbox 2.  解压zip文件 3.  用maven编译文件 如果没有配置全局maven,就直接使用cmd命令行[进 ...

  7. PHP对有道翻译API函数

    首先需要先到http://fanyi.youdao.com/openapi?path=data-mode申请APIKEY.然后公布代码: <?php header("Content-T ...

  8. CSS札记(二):级联与继承

    一.级联 概念:级联(The cascade),CSS是Cascading Style Sheet的简写,说明级联是非常重要的.从表层来看,级联表明CSS规则的顺序问题,但是级联远比这个复杂,在所有的 ...

  9. DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能

    行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...

  10. oracle查询语句执行顺序

    完整的查询语句类似是这样的: select ..., ROWNUM from table where <where clause> group by <columns> hav ...