android httpclient基本用法
android httpclient常用的post get delete put 方法简单使用
传值方式:文本键值对格式 和 json格式
/*** 通过Put方式发送请求 更新采集器信息 * @param url URL地址* @param params 参数* @return * @throws Exception*/public String httpPut(String json,String url, List<Parameter> params, String tokenAuth,int type) throws Exception{String response = null;int timeoutConnection = YunTongXun.httpclienttime; int timeoutSocket = YunTongXun.httpclienttime; HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); // 构造HttpClient的实例HttpClient httpClient = new DefaultHttpClient(httpParameters); HttpPut httpPost = new HttpPut(url);if (params.size()>=0){//设置httpPost请求参数if(type==2){ String jsstr = "[{";for (Parameter param : params){jsstr += "\"" + param.getName() +"\":" + param.getValue() + ",";}jsstr = jsstr.substring(0,jsstr.length()-1);jsstr +="}]"; if(json!=null){jsstr = json;}System.out.println(jsstr);StringEntity s = new StringEntity(jsstr ,"utf-8");s.setContentEncoding("UTF-8");s.setContentType("text/json");s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));httpPost.setEntity(s);httpPost.setHeader("Accept", "application/json");httpPost.setHeader("Content-Type","application/json;charset=UTF-8");}else if(type==3){boolean isLock = false,hasMutiDistance = false;String blowerIds = "";String distances = "";for (Parameter param : params){if(param.getName().equals("distance")){if(param.getValue().split(",").length>1){distances = param.getValue();hasMutiDistance = true;}}else if(param.getName().equals("lock")){if(param.getValue().length()>2){blowerIds = param.getValue();isLock = true;}}else if(param.getName().equals("unlock")){if(param.getValue().length()>2){blowerIds = param.getValue();isLock = false;}}}if(!hasMutiDistance){String jsstr = "[{";for (Parameter param : params){jsstr += "\"" + param.getName() +"\":" + param.getValue() + ",";}jsstr = jsstr.substring(0,jsstr.length()-1);jsstr +="}]";StringEntity s = new StringEntity(jsstr ,"utf-8");s.setContentEncoding("UTF-8");s.setContentType("text/json");s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));httpPost.setEntity(s);}else{String jsstr = "[";int i =0;blowerIds = blowerIds.replace("[", "").replace("]", "");for(String dis : distances.split(",")){if(isLock){jsstr += "{\"distance\":" + dis + ",\"lock\":[" + blowerIds.split(",")[i] + "],\"unlock\":[]},";}else{jsstr += "{\"distance\":" + dis + ",\"unlock\":[" + blowerIds.split(",")[i] + "],\"lock\":[]},";}i++;}jsstr = jsstr.substring(0,jsstr.length()-1);jsstr +="]";System.out.println(jsstr);StringEntity s = new StringEntity(jsstr ,"utf-8");s.setContentEncoding("UTF-8");s.setContentType("text/json");s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));httpPost.setEntity(s);}httpPost.setHeader("Accept", "application/json");httpPost.setHeader("Content-Type","application/json;charset=UTF-8");}else if(type ==1){httpPost.setEntity(new UrlEncodedFormEntity(buildNameValuePair(params),HTTP.UTF_8));}}if(tokenAuth != null)httpPost.setHeader("Authorization", tokenAuth);//使用execute方法发送HTTP Post请求,并返回HttpResponse对象HttpResponse httpResponse = httpClient.execute(httpPost);int statusCode = httpResponse.getStatusLine().getStatusCode();if(statusCode==HttpStatus.SC_CREATED || statusCode == HttpStatus.SC_OK){//获得返回结果response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");if(response==null || response.length()<2){System.out.println("{status_code:"+statusCode+"}");return "{status_code:"+statusCode+"}";}}else{ response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");System.out.println(response);System.out.println("{status_code:"+statusCode+"}");return "{status_code:"+statusCode+"}";}return response;}
/*** http通信类* @author sm**/
@SuppressWarnings("deprecation")
public class SyncHttp
{/**
* 通过GET方式发送请求
* @param url URL地址
* @param params 参数
* @return
* @throws Exception
*/
public String httpGet(String url, String params) throws Exception
{
String response = null; //返回信息
//拼接请求URL
if (null!=params&&!params.equals(""))
{
url += "?" + params;
}int timeoutConnection = YunTongXun.httpclienttime;
int timeoutSocket = YunTongXun.httpclienttime;HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established.HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); // 构造HttpClient的实例
HttpClient httpClient = new DefaultHttpClient(httpParameters);
// 创建GET方法的实例
HttpGet httpGet = new HttpGet(url);try
{
HttpResponse httpResponse = httpClient.execute(httpGet);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) //SC_OK = 200
{
// 获得返回结果
response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");
}
else
{
return "{status_code:"+statusCode+"}";
}
} catch (Exception e)
{
return null;
}
return response;
}/**
* 通过POST方式发送请求 获取短信
* @param url URL地址
* @param params 参数
* @return
* @throws Exception
*/
public String httpPost(String url, List<Parameter> params) throws Exception
{
String response = null;
int timeoutConnection = YunTongXun.httpclienttime;
int timeoutSocket = YunTongXun.httpclienttime;
HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
// 构造HttpClient的实例
HttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpPost httpPost = new HttpPost(url);
if (params.size()>=0)
{
//设置httpPost请求参数
httpPost.setEntity(new UrlEncodedFormEntity(buildNameValuePair(params),HTTP.UTF_8));
}
//使用execute方法发送HTTP Post请求,并返回HttpResponse对象
HttpResponse httpResponse = httpClient.execute(httpPost);int statusCode = httpResponse.getStatusLine().getStatusCode();
if(statusCode==HttpStatus.SC_CREATED || statusCode == HttpStatus.SC_OK)
{//获得返回结果response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");
}
else
{
return "{status_code:"+statusCode+"}";
}return response;
}/**
* 把Parameter类型集合转换成NameValuePair类型集合
* @param params 参数集合
* @return
*/
private List<BasicNameValuePair> buildNameValuePair(List<Parameter> params)
{
List<BasicNameValuePair> result = new ArrayList<BasicNameValuePair>();
for (Parameter param : params)
{
BasicNameValuePair pair = new BasicNameValuePair(param.getName(), param.getValue());
result.add(pair);
}
return result;
}/**
* 通过delete方式发送请求
* @param url URL地址
* @param params 参数
* @return
* @throws Exception
*/
public String httpdelete(String url, String params) throws Exception
{
String response = null; //返回信息
//拼接请求URL
if (null!=params&&!params.equals(""))
{
url += "?" + params;
}int timeoutConnection = YunTongXun.httpclienttime;
int timeoutSocket = YunTongXun.httpclienttime;
HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); // 构造HttpClient的实例
HttpClient httpClient = new DefaultHttpClient(httpParameters);
// 创建GET方法的实例
HttpDelete httpdelete = new HttpDelete(url);
try
{
HttpResponse httpResponse = httpClient.execute(httpdelete);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) //SC_OK = 200
{
// 获得返回结果
response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");
}
else
{
return "{status_code:"+statusCode+"}";
}
} catch (Exception e)
{
return null;
}
return response;
}/**
* 通过put方式发送请求,修改用户信息
* @param url URL地址
* @param params 参数
* @return
* @throws Exception
*/
public String httpPut(String url, HashMap<String, String> params,String tokenAuth) throws Exception
{
String response = null; //返回信息
//拼接请求URL
int timeoutConnection = YunTongXun.httpclienttime;
int timeoutSocket = YunTongXun.httpclienttime;
HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); // 构造HttpClient的实例
HttpClient httpClient = new DefaultHttpClient(httpParameters);// 创建GET方法的实例
HttpPut httpPut = new HttpPut(url);
httpPut.setHeader("Authorization", tokenAuth);
if (params.size()>=0)
{MultipartEntity reqEntity = new MultipartEntity();
if(params.keySet().contains("password"))
{
reqEntity.addPart("password", new StringBody(params.get("password"),Charset.forName("UTF-8")));
reqEntity.addPart("username", new StringBody(params.get("username"),Charset.forName("UTF-8")));
reqEntity.addPart("new_password", new StringBody(params.get("new_password"),Charset.forName("UTF-8")));
}
else
{// reqEntity.addPart("username", new StringBody(params.get("username"),Charset.forName("UTF-8")));
if(params.keySet().contains("nickname"))
{reqEntity.addPart("nickname", new StringBody(params.get("nickname"),Charset.forName("UTF-8")));
}
if(params.keySet().contains("avatar"))
{
reqEntity.addPart("avatar", new FileBody(new File(params.get("avatar"))));
}
}
//设置httpPost请求参数httpPut.setEntity(reqEntity);
}
try
{
HttpResponse httpResponse = httpClient.execute(httpPut);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) //SC_OK = 200
{
// 获得返回结果
response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");
}
else
{
return "{status_code:"+statusCode+"}";
}
} catch (Exception e)
{
return null;
}
return response;
}/**
* 通过put方式发送请求,修改用户密码信息
* @param url URL地址
* @param params 参数
* @return
* @throws Exception
*/
public String httpPutSetNewPwd(String url, HashMap<String, String> params) throws Exception
{
String response = null; //返回信息
//拼接请求URL
int timeoutConnection = YunTongXun.httpclienttime;
int timeoutSocket = YunTongXun.httpclienttime;
HttpParams httpParameters = new BasicHttpParams();// Set the timeout in milliseconds until a connection is established. HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);// Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); // 构造HttpClient的实例
HttpClient httpClient = new DefaultHttpClient(httpParameters);// 创建GET方法的实例
HttpPut httpPut = new HttpPut(url);
if (params.size()>=0)
{
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("code", new StringBody(params.get("code"),Charset.forName("UTF-8")));
reqEntity.addPart("username", new StringBody(params.get("username"),Charset.forName("UTF-8")));
reqEntity.addPart("new_password", new StringBody(params.get("new_password"),Charset.forName("UTF-8")));
//设置httpPost请求参数httpPut.setEntity(reqEntity);
}
try
{
HttpResponse httpResponse = httpClient.execute(httpPut);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) //SC_OK = 200
{
// 获得返回结果
response = EntityUtils.toString(httpResponse.getEntity(),"utf-8");
}
else
{
return "{status_code:"+statusCode+"}";
}
} catch (Exception e)
{
return null;
}
return response;
}}
android httpclient基本用法相关推荐
- Android之Adapter用法总结
本文转自http://kb.cnblogs.com/a/2328334/,转载请注明原出处. Android之Adapter用法总结 作者:Devin Zhang 来源:博客园 发布时间:2012 ...
- Android的Adapter用法总结
Android之Adapter用法总结 1.Adapter概念 定义为将一个类的接口变换成客户端所期待的一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 在androi ...
- Android webservice的用法详细讲解
Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...
- android room表关联,Android Room的用法
Android Room的用法 SQLite是Android内置的轻量级关系型数据库,但直接使用SQLite core包做数据库操作有以下劣势:需要编写长且重复的代码,这会很耗时且容易出错. 管理SQ ...
- android图片显示组件,Android可循环显示图像的Android Gallery组件用法实例
本文实例分析了Android可循环显示图像的Android Gallery组件用法.分享给大家供大家参考,具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能 ...
- 关于AsyncHttpClient的cz.msebera.android.httpclient.Header
android-async-http-1.4.9版本去除了httpclient的东西,所以会出现Header[] headers找不到的错误,这里分享下解决办法: 我们先看看官方:https://gi ...
- Android RxJava 基本用法
Android RxJava 基本用法 RxJava 使用函数响应式编程方式,它可以简化项目,处理嵌套回调的异步事件. RxJava 依赖 这里以 RxJava 2.2.1 为例.在 build.gr ...
- Android中富文本用法包括点击事件处理
Android中富文本用法包括点击事件处理 关于 只需要富文本展示效果,不需要点击事件 展示富文本加点击事件 关于 最近项目需要中需要用到富文本展示及富文本点击功能,先去百度了一下,大多数的说法是 ...
- 【androidx86 5.1.1】Android HttpClient请求过程解析(上)
Android HttpClient请求过程解析 前言:很久没有写源码解析相关的文章了,所谓"三天不写,上房揭瓦",这都仨月啦!前段时间忙着发版,经理有别的事情忙,就把管理发版的事 ...
- Android中list常用方法,Android中ListActivity用法实例分析
本文实例分析了Android中ListActivity用法.分享给大家供大家参考,具体如下: 程序如下: import android.app.ListActivity; import android ...
最新文章
- excel去掉超链接
- python处理视频动漫化_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
- 超大 Cookie 拒绝服务攻击
- 医学计算机教学计划,医学院教学计划
- 基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce
- soapui 测试soap_使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分
- 自己动手 CentOS-6.5 安装Oracle11g R2
- wubiuefi-支持新版本ubuntu的wubi
- C++中的XML配置文件编程经验
- C/C++ _beginthreadex 多线程操作 - 线程同步
- JavaFX屏幕截图工具ScreenCapture
- 解决“微信与此IPAD不兼容
- 学计算机c语言吗,学习C语言对学习计算机很重吗?
- 【pytorch】 grad、grad_fn、requires_grad()、with torch.no_grad() 、net.train()、net.eval():记录一次奇怪的debug经历
- 使用函数计算分段函数的值
- Qt程序在arm板上运行
- 小白怎么做一个轮播图?(思路+代码)
- 与sourceinsight媲美的代码阅读工具
- PageHelper和PageInfo的使用
- OpenGL ES之实现“瘦脸大眼”效果