public class HttpUtils {
private static final String TAG = "uploadFile";
private static final int TIME_OUT = * ;//超时时间 /**
* 通过GET方式发送请求
*
* @param url URL地址
* @param params 参数
*/
public static String httpGet(String url, String params) {
//返回信息
String response = null;
try {
//拼接请求地址
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append(url);
if (null != params && !params.equals("")) urlBuilder.append("?" + params);
// 构造HttpClient的实例
HttpClient httpClient = new DefaultHttpClient();
// 创建GET方法的实例
HttpGet getMethod = new HttpGet(urlBuilder.toString());
//设置请求APIToken和请求方式
getMethod.addHeader("Accept-Language", WebApiUrl.Accept_Language);
getMethod.addHeader("Authorization", "Basic " + WebApiUrl.Authorization);
getMethod.addHeader("Content-Type", WebApiUrl.Content_Type); //获取HTTP请求响应结果
HttpResponse httpResponse = httpClient.execute(getMethod);
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) //SC_OK = 200
{
// 获得返回结果
response = EntityUtils.toString(httpResponse.getEntity());
}
} catch (Exception ex) {
Log.i(TAG, String.format("HttpGet请求发生异常:{0}", ex.toString()));
}
return response;
} /**
* 通过POST方式发送请求
*
* @param url URL地址
* @param params 参数
*/
public static String httpPost(String url, String params) {
String result = null;
try {
StringEntity entity = new StringEntity(params, "utf-8");
entity.setContentType("application/json");
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(entity);
httpPost.addHeader("Authorization", "Basic " + WebApiUrl.Authorization);
// 构造HttpClient的实例
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
result = EntityUtils.toString(responseEntity, "UTF-8");
} catch (Exception ex) {
Log.i(TAG, String.format("HttpPost请求发生异常:{0}", ex.toString()));
}
return result;
}
}

Post请求案例
实例一:接口入参为对象

public ManagementBagRsult ManagementDetainedBags(DetentionBagParam param) {       
Gson os=new Gson();
String paramStr=os.toJson(param);
try {
String result = HttpUtils.httpPost(WebApiUrl.ManagementDetainedBags_Url,paramStr);
ManagementBagRsult info = os.fromJson(result, ManagementBagRsult.class);
return info;
} catch (Exception ex) {
Log.i("TAG", String.format("ScanBagInfoContractImpl/ManagementDetainedBags:{0}", ex.toString()));
return null;
}
}

实例二:接口入参为String单个属性

public class LoginContractImpl implements ILoginContract {
private static final Logger logger = LoggerFactory.getLogger();
@Override
public ApLoginResult doLogin(DetentionBagParam param) {
try {
//传入参数,获得结果集
String result = HttpUtils.httpPost(WebApiUrl.Login_Url+"?OrganizationCode="+param.OrganizationCode+"&UserWorkNumber="+param.UserWorkNumber+"&UserPassWord="+param.UserPassWord, "");
//序列化一个泛型对象
Gson gs = new Gson();
ApLoginResult info = gs.fromJson(result, ApLoginResult.class);
return info;
} catch (Exception ex) {
logger.info(String.format("LoginContractCompl发生异常:{0}", ex.toString()));
return null;
}
}
}

实例三:GET请求

public Boolean SetLocactionIsFull(String locaton_code) {
String params="location_code="+locaton_code;
try {
String result=HttpUtils.httpGet(WebApiUrl.SetLocactionIsFull_Url, params);
//获取对应的值
if (result == null) return false;
//反序列化一个泛型对象
Gson gs = new Gson();
Type jsonType = new TypeToken<RequestModel.Request<Boolean>>() {}.getType();
RequestModel.Request<Boolean> res= gs.fromJson(result, jsonType);
if(res!=null && res.ResultCode.equals("") && res.ResultDesc.equals("接口调用成功")){
return res.Item;
}
} catch (Exception ex) {
logger.info(String.format("{0}/{1}发生异常:{2}", "QuickShelfContractImpl", "InStoresOperating", ex.toString()));
}
return false;
}

WebApi HttpUtils的更多相关文章

  1. webapi - 使用依赖注入

    本篇将要和大家分享的是webapi中如何使用依赖注入,依赖注入这个东西在接口中常用,实际工作中也用的比较频繁,因此这里分享两种在api中依赖注入的方式Ninject和Unity:由于快过年这段时间打算 ...

  2. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  3. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

  4. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  5. Taurus.MVC 2.0 开源发布:WebAPI开发教程

    背景: 有用户反映,Tausus.MVC 能写WebAPI么? 能! 教程呢? 嗯,木有! 好吧,刚好2.0出来,就带上WEBAPI教程了! 开源地址: https://github.com/cyq1 ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件

    系列目录 上一篇演示了WebApi利用Unity注入 很多人问我如何用配置文件来配置注入,本节演示如何利用配置文件来注入,道理是一样的,跳转到上一节下载源码一起来动手! 1.打开源码定位到文件Depe ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)

    系列目录 前言: 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访 ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)

    系列目录 前言: WebAPI主要开放数据给手机APP,其他需要得知数据的系统,或者软件应用,所以移动端与系统的数据源往往是相通的. Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能, ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-WebApi与Unity注入

    系列目录 前言: 有时候我们系统需要开放数据给手机App端或其他移动设备,不得不说Asp.net WebApi是目前首选 本节记录Asp.net MVC WebApi怎么利用Unity注入.系列开头已 ...

随机推荐

  1. 基于Babylon.js编写宇宙飞船模拟程序1——程序基础结构、物理引擎使用、三维罗盘

    计划做一个宇宙飞船模拟程序,首先做一些技术准备. 可以访问https://ljzc002.github.io/test/Spacetest/HTML/PAGE/spacetestwp2.html查看测 ...

  2. 浏览器端获取短信验证码java实现——阿里云短信服务

    需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...

  3. ieTESTER浏览器使用ie6崩溃问题

    打开浏览器在选项--internet属性--连接--局域网设置--将自动检测设置的对勾勾掉就可以  重启下浏览器

  4. 面试官:你有m个鸡蛋,如何用最少的次数测出鸡蛋会在哪一层碎?

    假设你面前有一栋n层的大楼和m个鸡蛋,假设将鸡蛋从f层或更高的地方放扔下去,鸡蛋才会碎,否则就不会.你需要设计一种策略来确定f的值,求最坏情况下扔鸡蛋次数的最小值. leetcode原题链接 乍一看这 ...

  5. Spark 学习笔记之 Spark history Server 搭建

    在hdfs上建立文件夹/directory hadoop fs -mkdir /directory 进入conf目录  spark-env.sh 增加以下配置 export SPARK_HISTORY ...

  6. js匿名函数自执行的好处

    我们知道,在创建一个函数时如果要用到变量来存取信息的话,要尽量使用局部变量. 因为一方面局部变量会随着函数的执行结束被销毁:另一方面在不执行函数的时候也不会创建这个局部变量,对节省空间资源有很大的好处 ...

  7. java中的char

    System.out.println("char二进制位数:" + Character.SIZE);//16 即2个字节 在c语言中,char类型占一个字节,而汉子占两个字节,所以 ...

  8. java中&和&&

    &和&&都可以用作逻辑与的运算符,表示逻辑与(and) &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如: If(x==33 ...

  9. 简单cookie入侵

    在当前网站,按下F12键进入开发者模式,在console控制台输入:document.cookie获取cookie值如: 复制你得到cookie值,你或通过每种方式获取Cookie,例如:当别人点击你 ...

  10. BZOJ 1965 [AHOI2005]洗牌

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...