AndroidHttpClient详解
AndroidHttpClient结构:
public final classAndroidHttpClientextends Object
implements HttpClient
前言: 这类其实是Google对阿帕奇的HttpClient的一个封装,一些默认属性有android做了一些优化。
然后阿帕奇的HttpClient是对java中HttpUrlConnection的一个封装,感觉阿帕奇封装的还是不错的,
特别是其中的HttpEntity,很强大也很好用,能在android手机上上传百M的文件到服务器,还是不错的。
一: AndroidHttpClient的使用方式
1.创建 AndroidHttpClient对象
AndroidHttpClient c = AndroidHttpClient.newInstance("");
AndroidHttpClient只能通过以上方法建立,其中的参数好像是设置代理的,如果没有置空即可。
2.使用开启 cookies
AndroidHttpClient默认情况下是关闭cookies的,开启的方法如下
AndroidHttpClient c = AndroidHttpClient.newInstance("");
BasicHttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.COOKIE_STORE, new BasicCookieStore());
try {
c.execute(null, context);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
其中的context在client发送的请求的时候,同时发送即可。发送请求方法的第一个参数,很重要,下面详解。
二: HttpUriRequest 使用
1.上面的 c.execute(null, context);第一个参数即为HttpUriRequest,用于封装请求信息的。
HttpUriRequest提供了两个使用的子类,相信你闭着眼睛也能猜到,没错!就是HttpGet和HttpPost。
2.ok,我们先来看看,HttpGet是怎么用的。
题外话,其实从这个方法的名字上就能看出来,get嘛,
就是获取的得到的意思, 所以如果你想从服务器获取什么数据,就多用用他吧。
HttpGet提供了三个构造函数:
—— HttpGet ()
—— HttpGet ( URI uri)
—— HttpGet ( String uri)
看上面的最后两个构造方法,你应该能猜到那个参数的意义了,就是想要
获取文件的地址!其实第一个虽然没有提供一个地址,但是HttpGet有个
方法可以设置资源地址:HttpGet.setURI(URI uri);
看下他的具体初始化方式:
方式一:
try {final String _URI = "www.baidu.com";HttpGet requestGet = new HttpGet();requestGet.setURI(new URI(_URI));} catch (URISyntaxException e) {// TODO Auto-generated catch block e.printStackTrace();}
方式二:
try {final String _URI = "www.baidu.com";HttpGet requestGet = new HttpGet(new URI(_URI));} catch (URISyntaxException e) {// TODO Auto-generated catch block e.printStackTrace();}
方式三:
final String _URI = "www.baidu.com";HttpGet requestGet = new HttpGet(_URI);
3.好了,当创建好了HttpGet对象之后,就可以将其放入AndroidHttpClient访问了。
有人说使用Get方式访问的时候,能不能在后面添加用户名和密码什么的,其实加不加
都可以,因为在服务器那边获取的方式是一样的,但是我觉得如果有参数的话,还是不要
直接加在资源地址后面吧,因为我感觉太难看了。。。看起来不整洁,哈哈。
那有人说了,那怎么有参数的时候怎么办呢?下面就给你解决的方案,HttpPost闪亮登场!
4.HttpPost这个东西,其实最NB的地方是他能放入一个实体(Entity)发送到服务器,这个
实体能够封装各种数据,将想发送的数据封装到Entity中,然后调用HttpPost的setEntity方法
将实体放入其中,然后发送请求就行了。所以下面就好讲解一下Entity的都能封装什么类型的数据。
三:HttpEntity讲解(本博文的重点)
有的同学可能会觉得,看博文文字太多看的很是无聊,来张图片多好。既然大家有着要求,那就满足你。
AndroidHttpClient详解相关推荐
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 通俗易懂word2vec详解词嵌入-深度学习
https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...
- 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法
深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...
- CUDA之nvidia-smi命令详解---gpu
nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...
- Bert代码详解(一)重点详细
这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
- pytorch nn.LSTM()参数详解
输入数据格式: input(seq_len, batch, input_size) h0(num_layers * num_directions, batch, hidden_size) c0(num ...
- Java集合详解之Map
一.首先看看集合框架体系图 从图中可以看到,Map接口扩展了Iterator接口,关于Iterator接口详解请移步:Iterator接口详解 二.Map是什么? Map<k,v>使用键值 ...
最新文章
- elasticsearch6.X 及head插件部署(完整版)
- java 模块分离部署_GitHub - yangjiu/Mis: 模块接口服务,如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块?...
- Fill in blank -Thermal experiment theory and technology2018-01-06
- [原创]分布式系统之缓存的微观应用经验谈(三)【数据分片和集群篇】
- 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了
- vue多个html传递参数,vue 项目@change多个参数传值多个事件的操作
- 砍价小程序有人做过吗?调用多多砍价记录,可以转口令或者链接的那种
- 三级管和场效应管驱动电路设计及使用
- 51nod 1429 巧克力
- Arduino基础与常用函数
- AndroidStudio 跑马灯效果不自动滚动的原因
- 关于安装PotPlayer64出现PotPlayer 64 bit need right Try agin的问题
- 第一Python第一个爬虫项目
- 图形图像相关格式简介
- 如何有效防治企业污染
- 【成长访谈】李钊:学技术于无形,论大道于无声
- 一步步学习Python----10
- 这三个SCI期刊快速高录用!AI、多模态、物联网等主题,因子稳中看升
- Facebook广告投放经常被问的几个问题
- 奥斯卡提名预测:《少年派》有望角逐最佳
热门文章
- 电信移动中兴B860AV2.1-1.1T-1.2系列晶晨S905L芯片-刷机固件包
- 优化算法 | 多车型车辆路径问题-初始解构造方法
- 二阶系统响应指标图_二阶系统的性能指标
- Matlab图像分割(U-Net)
- rom大小 stm32f205_最小的基于STM32F205VE的系统板
- 时间序列谐波分析(HANTS)的MATLAB实现
- 服务器常见故障及其解决方法
- _beginthread 与 _endthread 函数分析 (ReactOS版)
- 建模方法(四)-因子分析定义和应用
- python android开发视频教程_程序员学习视频教程汇总