博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓 okhttp小结
阅读量:4508 次
发布时间:2019-06-08

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

概念及原理

特性

    支持同步阻塞调用和具有回调的异步调用。

    OkHttp支持Android 2.3及以上版本。 对于JDK,最低要求是1.7。

 

Request是OkHttp中访问的请求,Builder是辅助类。Response即OkHttp中的响应。

 

代码部分

项目中使用EventBus:

S1.添加jar包或依赖

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

    compile 'com.squareup.okio:okio:1.13.0'

S2.创建POST/GET请求:

   

S3.代码混淆

    -dontwarn okio.**

-dontwarn javax.annotation.Nullable

-dontwarn javax.annotation.ParametersAreNonnullByDefault

OKHTTP主要方法:

// 创建请求MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");Request request = new Request.Builder()                        .post(RequestBody.create(MEDIA_TYPE, json))                        .url(url)                        .build();// 创建响应Response response = client.newCall(request).execute();  // syncResponse response = client.newCall(request).enqueue(new Callback() { // async                   @Override                    public void onFailure(Call call, IOException e) {                    }                    @Override                    public void onResponse(Call call, Response response) throws IOException {                    }                });// 获取结果if (response.isSuccessful()) {     response.body().string();}// 超时设置// 提交JSON数据示例    public static void postJsonExamAsync() {        String url = "http:localhost:8080/login/commitUserInfo";        String postJson = "{}";        RequestBody body = RequestBody.create(MEDIA_TYPE, postJson);        Request request = new Request.Builder()                .url(url)                .post(body)                .build();        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {                e.printStackTrace();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);                Headers responseHeaders = response.headers();                for (int i = 0; i < responseHeaders.size(); i++) {                    System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));                }                System.out.println(response.body().string());            }        });    }

  

参考文档:

   

   

   

   

    

转载于:https://www.cnblogs.com/zhen-android/p/6943112.html

你可能感兴趣的文章
ubuntu 设置plank开机自启之后关机键失效变为注销键
查看>>
JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)
查看>>
手指滑动切换手机图片
查看>>
解决Oracle EM无法启动
查看>>
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
查看>>
PHP 跨域资源共享 CORS 设定
查看>>
男神鹏:使用Redis 的一些 问题解决方案。
查看>>
创建空间参考
查看>>
TestFlight下载app 初使用
查看>>
promise学习
查看>>
在vagrant官网下载各种最新.box资源
查看>>
selenium+python自动化95-弹出框死活定位不到
查看>>
关于防止用户表单多次提交方案的思考
查看>>
MAC终端显示tree命令
查看>>
Dissecting the First C# Program "HelloWorld"
查看>>
多线程--生产者消费者--简单例子
查看>>
Mac 安装tensorflow
查看>>
jsoup html解析器 实现对博客园博文标题链接抓取
查看>>
数据库面试题
查看>>
Flex 延时控制三步走
查看>>