android httpclient,androidhttpclient进度
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!
1、Apache组织提供了HttpClient项目,可以实现网络访问。在Android中,成功集成了HttpClient,所以在Android中可以直接使用HttpClient访问网络。
2、与HttpURLConnection相比,HttpClient将前者中的输入、输出流操作,统一封装成HttpGet、HttpPost、HttpRequest类。
HttpResponse:代表处理服务器响应的对象。
HttpEntity对象:该对象中包含了服务器所有的返回内容。
3、使用步骤:(六部曲)【重点】
创建HttpClient对象:通过实例化DefaultHttpClient获得;
创建HttpGet或HttpPost对象:通过实例化 HttpGet或HttpPost获得,而构造方法的参数是urlstring(即需要访问的网络url地址)。也可以通过调用setParams()方法来添加请求参数;
调用HttpClient对象的execute()方法,参数是刚才创建的 HttpGet或HttpPost对象,返回值是HttpResponse对象;
通过response对象中的getStatusLine()方法和getStatusCode()方法获取服务器响应状态是否是200。
调用 HttpResponse对象的getEntity()方法,返回HttpEntity对象。而该对象中包含了服务器所有的返回内容。
借助EntityUtils的toString()方法或toByteArray()对 HttpEntity对象进行处理,也可以通过IO流对 HttpEntity对象进行操作。
(二)、封装HttpClientHelper工具类:
public class HttpClientHelper{
public static HttpClient checkNetwork(String url){
HttpClient httpClient= new DefaultHttpClient();
HttpGet request= new HttpGet(url);
HttpResponse httpResponse= null;
httpResponse= httpClient.execute(request);
if(httpResponse.getStatusLine().getStatusCode()== 200){
} catch(ClientProtocolException e){
*作用:实现网络访问文件,将获取到数据储存在文件流中
public static InputStream loadFileFromURL(String url){
HttpClient httpClient= new DefaultHttpClient();
HttpGet requestGet= new HttpGet(url);
httpResponse= httpClient.execute(requestGet);
if(httpResponse.getStatusLine().getStatusCode()== 200){
HttpEntity entity= httpResponse.getEntity();
*作用:实现网络访问文件,将获取到的数据存在字节数组中
public static byte[] loadByteFromURL(String url){
HttpClient httpClient= new DefaultHttpClient();
HttpGet requestGet= new HttpGet(url);
HttpResponse httpResponse= httpClient.execute(requestGet);
if(httpResponse.getStatusLine().getStatusCode()== 200){
HttpEntity httpEntity= httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
System.out.println("====>"+ e.toString());
*作用:实现网络访问文件,返回字符串
public static String loadTextFromURL(String url){
HttpClient httpClient= new DefaultHttpClient();
HttpGet requestGet= new HttpGet(url);
HttpResponse httpResponse= httpClient.execute(requestGet);
if(httpResponse.getStatusLine().getStatusCode()== 200){
HttpEntity httpEntity= httpResponse.getEntity();
return EntityUtils.toString(httpEntity,"utf-8");
*作用:实现网络访问文件,先给服务器通过“GET”方式提交数据,再返回相应的数据
* String url:访问url时,需要传递给服务器的参数。
*第二个参数格式为:username=wangxiangjun&password=123456
public static byte[] doGetSubmit(String url, String params){
HttpClient httpClient= new DefaultHttpClient();
HttpGet requestGet= new HttpGet(url+"?"+ params);
HttpResponse httpResponse= httpClient.execute(requestGet);
if(httpResponse.getStatusLine().getStatusCode()== 200){
HttpEntity httpEntity= httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
*作用:实现网络访问文件,先给服务器通过“POST”方式提交数据,再返回相应的数据
* String url:访问url时,需要传递给服务器的参数。第二个参数为:List<NameValuePair>
public static byte[] doPostSubmit(String url, List<NameValuePair> params){
HttpClient httpClient= new DefaultHttpClient();
HttpPost requestPost= new HttpPost(url);
requestPost.setEntity(new UrlEncodedFormEntity(params,"utf-8"));
HttpResponse httpResponse= httpClient.execute(requestPost);
if(httpResponse.getStatusLine().getStatusCode()== 200){
HttpEntity httpEntity= httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
*作用:实现网络访问文件,先给服务器通过“POST”方式提交数据,再返回相应的数据
* String url:访问url时,需要传递给服务器的参数。 Map<String, Object>
public static byte[] doPostSubmit(String url, Map<String, Object> params){
HttpClient httpClient= new DefaultHttpClient();
HttpPost requestPost= new HttpPost(url);
List<BasicNameValuePair> parameters= new ArrayList<BasicNameValuePair>();
for(Map.Entry<String, Object> entry: params.entrySet()){
String value= entry.getValue().toString();
BasicNameValuePair nameValuePair= new BasicNameValuePair(
parameters.add(nameValuePair);
.setEntity(new UrlEncodedFormEntity(parameters,"utf-8"));
HttpResponse httpResponse= httpClient.execute(requestPost);
if(httpResponse.getStatusLine().getStatusCode()== 200){
HttpEntity httpEntity= httpResponse.getEntity();
return EntityUtils.toByteArray(httpEntity);
在Android开发中,Android SDK附带了Apache的HttpClient,它是一个完善的客户端。它提供了对HTTP协议的全面支持,可以使用HttpClient的对象来执行HTTP GET和HTTP POST调用。
1.客户端(一般是指浏览器,这里是指自己写的程序)与服务器建立连接
2.建立连接后,客户端向服务器发送请求
3.服务器接收到请求后,向客户端发送响应信息
1.使用DefaultHttpClient类实例化HttpClient对象
2.创建HttpGet或HttpPost对象,将要请求的URL通过构造方法传入HttpGet或HttpPost对象。
3.调用execute方法发送HTTP GET或HTTP POST请求,并返回HttpResponse对象。
4.通过HttpResponse接口的getEntity方法返回响应信息,并进行相应的处理。
最后记得要在AndroidManifest.xml文件添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
附件中包含了一个拍照上传的源代码
wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com