OkHttp简介

简介:

什么是OKHttp

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

官网:http://square.github.io/okhttp/

添加依赖

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

<dependency>
    <groupId>com.squareup.okhttp</groupId>
    <artifactId>okhttp</artifactId>
    <version>2.7.5</version>
</dependency>

如果是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<String, Object> map = new HashMap<String, Object>();
        try
        {
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("pageNo", pageNo);
            param.put("pageSize", pageSize);
            List<User> 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://www.cnblogs.com/chenpi/p/5980177.html,如需转载请自行联系原作者

相关文章
|
Java
使用OkHttp3框架获取服务器数据
使用OkHttp3框架获取服务器数据
175 0
|
设计模式 缓存 监控
OKHttp3 从使用到原理分析
Okhttp3 是我们经常使用的一个网络框架,可扩展性强,支持 get 缓存, spdy、http2.0,gzip 压缩减少数据流量,同步和异步请求,连接池复用机制等特性让广大 android 开发者深爱不已,今天我就带大家从 Okhttp 简单使用,到各种好用拦截器原理了解 Okhttp3
1885 0
OKHttp3 从使用到原理分析
|
安全 Java API
OkHttp官方教程
OkHttp官方教程
477 0
|
缓存 Java 开发工具
Android开发之OkHttp介绍
Android开发之OkHttp介绍
189 0
Android开发之OkHttp介绍
|
存储 缓存 网络协议
源码阅读 | Okhttp
源码阅读 | Okhttp
|
JSON Java 数据格式
rxjava2+retrofit2 简介
rxjava2+retrofit2 简介
104 0
|
存储 Android开发
OkHttp源码详解之Okio源码详解
OkHttp源码详解之Okio源码详解
OkHttp源码详解之Okio源码详解
|
缓存
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
393 0
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
|
设计模式 Java API
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
350 0
【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )
|
JSON Android开发 数据格式
Okhttp3-基本用法
前言 Okhttp官网Okhttp-Github android网络框架之OKhttp一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso) 用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient) 官网的解释如下: 基本用法 1.集成 1.1.依赖 implementation 'com.squareup.okhttp3:okhttp:3.11.0' 可以去Okhttp-Github 查看并依赖最新的版本。
3145 0