目前安卓开发中使用的网络工具为OKhttp,但是okhttp的使用还不是很方便,在okhttp的基础上再对请求进行封装会极大的方便网络调用。

  下面直接上代码。

请求封装

public class HttpUtil {
public static void sendOKHttpRequest(String address, Map<String,String> head,Map<String,String> body,okhttp3.Callback callback){
OkHttpClient client=new OkHttpClient();
Request.Builder builder=new Request.Builder().url(address);
if(head!=null&&head.size()>0){
for (Map.Entry<String, String> entry : head.entrySet()) {
builder.addHeader(entry.getKey(),entry.getValue());
}
}
FormBody.Builder formBody = new FormBody.Builder();
if(body!=null&&body.size()>0){
for (Map.Entry<String, String> entry : head.entrySet()) {
formBody.add(entry.getKey(),entry.getValue());
}
}
RequestBody requestBody = formBody.build();
Request request=builder.post(requestBody).build();
client.newCall(request).enqueue(callback);
}
}

上面对okhttp的put请求进行了简单封装,四个参数分别是

  1.请求地址

  2.请求头,以map的形式传入,如不需要可传入null

  3.携带参数,同样以map的形式传入,如无参数传入null

  4.回调函数

代码中调用

  

     Map<String,String> body=new HashMap<String, String>();
     body.put("userName",loginName);
     body.put("password",password);
    HttpUtil.sendOKHttpRequest(getString(R.string.ip)+"/xxx/Login",null,body,new Callback(){
@Override
public void onFailure(Call call, IOException e) {
//请求失败
} @Override
public void onResponse(Call call, Response response) throws IOException {
final String responseText=response.body().string();
//请求成功
}
});

注意Callback为OKhttp下的,引入时需注意。

最新文章

  1. 【原创】C#模拟Post请求,正文为json数据的代码参考
  2. 前端之css
  3. GregorianCalendar类
  4. Linux 下 PHP 扩展 cURL 编译安装
  5. Autofac全面解析系列(版本:3.5) &ndash; [使用篇(推荐篇):2.解析获取]
  6. .NET 分页
  7. php抓取页面的几种方式
  8. Mobile phones_二维树状数组
  9. leetcode之反转链表
  10. WCF之安全
  11. PHP函数补完:var_export()
  12. 转:聊聊并发(八)——Fork/Join框架介绍
  13. 浅谈长尾理论--《Makers》读后感
  14. java class load
  15. MAVEN打包报错:com.sun.net.ssl.internal.ssl;sun.misc.BASE64Decoder;程序包 javax.crypto不存在处理办法
  16. python--linux上如何执行shell命令
  17. delphi三层结构常出现的问题和解决方案
  18. Docker系列之Docker镜像(读书笔记)
  19. ELK技术实战-安装Elk 5.x平台
  20. Laravel Eloquent Model-&gt;isDirty() Function

热门文章

  1. pcntl_fork 导致 MySQL server has gone away 解决方案
  2. linux shell 找端口号及对应的进程
  3. 自适应滤波:维纳滤波器——GSC算法及语音增强
  4. 基于HBase的手机数据备份系统 .
  5. Python快速入门(3)
  6. MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)
  7. C#调用webbrowser,阻止弹出新IE窗口
  8. 早期练手:功能相对比较完善的 js 计算器
  9. 从以往子类化跟踪MouseLeave深入讨论VB6的自定义Hook类
  10. C++中进制转换问题