博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OkHttp简介
阅读量:6954 次
发布时间:2019-06-27

本文共 3745 字,大约阅读时间需要 12 分钟。

什么是OKHttp

一般在Java平台上,我们会使用Apache HttpClient作为Http客户端,用于发送 HTTP 请求,并对响应进行处理。比如可以使用http客户端与第三方服务(如SSO服务)进行集成,当然还可以爬取网上的数据等。OKHttp与HttpClient类似,也是一个Http客户端,提供了对 HTTP/2 和 SPDY 的支持,并提供了连接池,GZIP 压缩和 HTTP 响应缓存功能;

官网:

添加依赖

在Java中使用OKHttp很简单,如果是maven工程,往pom.xml添加如下xml片段即可,目前最新版本2.7.5

com.squareup.okhttp
okhttp
2.7.5

如果是gradle,添加如下依赖

compile group: 'com.squareup.okhttp', name: 'okhttp', version: '2.7.5'

 简单使用

后端Controller

一个简单的spring mvc web应用。

@RequestMapping(value = "/getUserList", produces = "application/json; charset=utf-8")    @ResponseBody    public String getUserList(int pageNo, int pageSize)    {        Map
map = new HashMap
(); try { Map
param = new HashMap
(); param.put("pageNo", pageNo); param.put("pageSize", pageSize); List
userList = userService.queryAll(param); map.put("userList", userList); return gson.toJson(map); } catch (Exception e) { logger.error(e.toString(), e); } return gson.toJson(FAILD); }

使用OkHttp发送Ge请求

package cn.hdu.edu.okhttpdemo;import java.io.IOException;import com.squareup.okhttp.OkHttpClient;import com.squareup.okhttp.Request;import com.squareup.okhttp.Response;/** * Hello world! * */public class App{    public String run(OkHttpClient client, String url) throws IOException {        Request request = new Request.Builder().url(url).build();        Response response = client.newCall(request).execute();        return response.body().string();      }    public static void main( String[] args )    {        OkHttpClient client = new OkHttpClient();        try        {            String res = new App().run(client, "http://localhost:8080/webbf/user/getUserList.do?pageNo=0&pageSize=10");            System.out.println(res);        }        catch (IOException e)        {            e.printStackTrace();        }    }}

使用OkHttp发送Post请求

package cn.hdu.edu.okhttpdemo;import java.io.IOException;import com.squareup.okhttp.FormEncodingBuilder;import com.squareup.okhttp.MediaType;import com.squareup.okhttp.OkHttpClient;import com.squareup.okhttp.Request;import com.squareup.okhttp.Response;/** * Hello world! * */public class App{    public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");    public String post(OkHttpClient client, String url) throws IOException    {        Request request = new Request.Builder()        .url(url)        .post(new FormEncodingBuilder()            .add("pageNo", "0")  //参数1            .add("pageSize", "10")  //参数二            .build())        .build();        Response response = client.newCall(request).execute();        return response.body().string();    }    public static void main(String[] args)    {        OkHttpClient client = new OkHttpClient();        try        {            String res = new App().post(client,                "http://localhost:8080/webbf/user/getUserList.do");            System.out.println(res);        }        catch (IOException e)        {            e.printStackTrace();        }    }}

结果打印

请求成功,打印以下数据:

{"userList":[{"id":49,"name":"876","address":"876"},{"id":50,"name":"antd","address":"antd"},{"id":51,"name":"sda","address":"sadsd"},{"id":52,"name":"5545","address":"4646546546"},{"id":53,"name":"sdas","address":"sdasa"},{"id":54,"name":"hggs","address":"sdsd"},{"id":55,"name":"4","address":"5"},{"id":56,"name":"4","address":"4"},{"id":57,"name":"00ba9d8e-0628-4477-857f-ef617c1ff4bc","address":"5906"},{"id":58,"name":"613ee3a3-fb87-4413-a8e0-9272d10ad4a7","address":"6427"}]}

 

转载地址:http://bbvil.baihongyu.com/

你可能感兴趣的文章
TCP,IP,HTTP,SOCKET区别和联系socket与http的区别
查看>>
SVN使用教程之-分支/标记 合并 subeclipse (转)
查看>>
【计导作业】文件——过滤注释
查看>>
(转)Java并发编程:并发容器之ConcurrentHashMap
查看>>
java常用英语单词
查看>>
SQLSERVER系统视图,系统表,sys.sql_modules视图
查看>>
DEDECMS之十 修改织梦链和文章的默认来源及作者
查看>>
【转载】C#数据导出到Excel文件
查看>>
转:数字签名是什么?(阮一峰)
查看>>
.NET程序内存分析工具CLRProfiler的使用(性能测试)
查看>>
马克飞象 Markdown 使用和学习
查看>>
Struts2拦截器浅析
查看>>
java 文件上传数据库
查看>>
JAVA设计模式初探之组合模式
查看>>
[LeetCode][Java] Substring with Concatenation of All Words
查看>>
coco定义的小物体中物体大物体的尺寸
查看>>
Spark2.1.0之源码分析——事件总线
查看>>
如何解压.gz的压缩文件
查看>>
UVA 10718 Bit Mask
查看>>
Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程
查看>>