OkHttp的介绍及基础使用

原创 2017年01月03日 20:48:43

特点

    开源Http库
    支持GZIP压缩
    支持响应缓存
    支持链接复用
    Okhttp作为安卓4.4的UrlConnection的底层采纳

配置

    compile 'com.squareup.okhttp3:okhttp:3.4.1'

配置OkhttpClient

//单独配置一个使用newBuilder()
    private OkHttpClient mHttpClient = new OkHttpClient.Builder()
            .connectTimeout(10, TimeUnit.SECONDS)
            .readTimeout(10, TimeUnit.SECONDS)
            .writeTimeout(10, TimeUnit.SECONDS).build();

get请求

    private String doGet() {
        Request request = new Request.Builder().url("http://httpbin.org/get")
                .header("User-Agent", "OkHttpDemo/1.0")//同一个key,覆盖
                .header("User-Agent", "OkHttpDemo/2.0")
                .addHeader("X-Key", "value1")
                .addHeader("X-Key", "value2").build();//同一个key,追加
        try {
            Response response = mHttpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return response.body().string();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

post请求

    private String doPost() {
        //请求体
        RequestBody requestBody = new RequestBody() {
            @Override
            public MediaType contentType() {
                return MediaType.parse("text/plain");
            }

            @Override
            public void writeTo(BufferedSink sink) throws IOException {
                InputStream inputStream = getResources().openRawResource(R.raw.data);
                byte[] buffer = new byte[1024];
                int read;
                while ((read = inputStream.read(buffer)) > 0) {
                    sink.write(buffer, 0, read);
                }
                sink.flush();
                inputStream.close();
            }
        };

        MultipartBody multipartBody = new MultipartBody.Builder().addPart(requestBody)
                .addPart(RequestBody.create(MediaType.parse("text/plain"),
                        "this is test data from code")).build();
        Request request = new Request.Builder().url("http://httpbin.org/post")
                .header("User-Agent", "OkHttpDemo/1.0")
                .method("POST", multipartBody)
                .build();
        try {
            Call call = mHttpClient.newCall(request);
            Response response = call.execute();
            if (response.isSuccessful()) {
                return response.body().string();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

异步get请求

    private void doGetAsync() {
        Request request = new Request.Builder().url("http://httpbin.org/get")
                .header("User-Agent", "OkHttpDemo/1.0").build();

        mHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {
                if (response.isSuccessful()) {
                    final String result = response.body().string();
                    mTvContent.post(new Runnable() {
                        @Override
                        public void run() {
                            mTvContent.setText(result);
                        }
                    });
                }
            }
        });
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android 网络框架之 OkHttp 基础使用

基于 OkHttp 3.6.0 版本,基本使用 OkHttp 的场景概述

okhttp3基础使用的封装

Android开发在网络请求这块有一个有名的开源框架okhttp,在https://github.com搜索okhttp即可看找到,具体地址为:https://github.com/square/ok...

Okhttp的简单介绍和使用

前言: 通过本篇,可以了解一下几点: Android中网络请求进化okhttp是什么okhttp的简单使用 如果有兴趣,可以看下我的另一篇,okhttp的简单封装: http://bl...

OkHttp的使用介绍

Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。 关于HttpURLConnection和HttpClient的选择>>官方博客 尽管Google...

Okhttp的简单介绍和使用(一)

通过本篇可以了解到: 1、okhttp是什么 2、okhttp的优点 3、okhttp的简单使用
  • wuyinlei
  • wuyinlei
  • 2016年01月25日 13:47
  • 10777

Http请求框架 okHttp 简单使用介绍

(今天接触了Http请求框架,搜索了一篇关于okHttp框架的博文,在此备份。) okHttp: OKHttp是Android版Http客户端。非常高效,支持SPDY、连接池、GZI...

简单的OkHttp使用介绍

http://www.cnblogs.com/zhangshibo/p/5882962.html Android系统提供了两种HTTP通信类,HttpURLConnection和HttpCl...

OKHttp使用简单介绍,实用教程

OKHttp使用简单介绍,实用教程 鸿洋大神关于OKHttp教程 OKHttp源码解析 本篇博客主要是讲解一个关于okhttp的实际使用。 所以这里主要是介绍异步请求。okhttp get...

安卓android网络框架okhttp介绍及使用

简介 OkHttp是Square出的Http通讯库,支持HTTP和HTTP/2,用于Android应用和Java应用。 OkHttp是非常优秀的Http通讯库,将Http连接中各种繁杂的问题,对并...

OkHttp使用介绍

 为什么需要一个HTTP库 Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。 关于HttpURLConnection和HttpCli...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OkHttp的介绍及基础使用
举报原因:
原因补充:

(最多只允许输入30个字)