安卓 okhttp小结

概念及原理

特性

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

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();  // sync
Response 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());
            }
        });
    }

  

参考文档:

Github-okhttp link2

Github文档-okio

Android OkHttp完全解析 是时候来了解OkHttp了

OkHttp使用教程

时间: 2024-10-07 20:05:21

安卓 okhttp小结的相关文章

安卓OKhttp请求封装

目前安卓开发中使用的网络工具为OKhttp,但是okhttp的使用还不是很方便,在okhttp的基础上再对请求进行封装会极大的方便网络调用. 下面直接上代码. 请求封装 public class HttpUtil { public static void sendOKHttpRequest(String address, Map<String,String> head,Map<String,String> body,okhttp3.Callback callback){ OkHtt

安卓第一次小结

文本框: 存放文本的 <TextView android:id="@+id/textView1" //控件的身份 android:layout_width="wrap_content" android:layout_height="wrap_content" //wrap_content 适应内容 // match_parent 填充容器 //fill_parent  跟match_parent 一样的 //直接使用整数    单位 dp

安卓 开发笔记目录

安卓 开发笔记index 安卓基础 Fragment总结 安卓 BroadcastReceiver笔记 安卓 Notification-通知总结 开源框架笔记 安卓 okhttp小结 EventBus框架总结 安卓 图片加载框架ImageLoader 第三方SDK 安卓 短信验证MobSMS集成 开源项目 其他 安卓 常用属性设置代码笔记 安卓 代码混淆与打包 AOSP开发笔记 开发工具 SecureCRT连接Ubuntu配置 Ubuntu开发环境搭建 开发环境 AOSP android7.1.

安卓网络请求之——OkHttp学习

之前做安卓项目的时候,HTTP请求用的是android api中的HttpURLConnection和HttpClient,编码比较繁琐,自己封装的也不好.后来知道有很多网络请求的第三方框架,可以方便地集成到我们的项目中,比自己写的网络请求要稳定且规范.这其中,OkHttp广受好评,因此花了些时间去了解和学习. 1.关于OkHttp使用教程,请点击. 2.鸿洋大神对OkHttp进行了封装,编码变得更为精简.详情点击. 3.在阅读鸿洋大神的博文时,解决了一些困惑的知识点. 3.1.sychroni

安卓小结《1》

Activity的生命周期和启动模式的知识点小结: 1.如果Activity切换的时候,新Activity是透明,旧的不会走onStop方法. 2.新的Activity切换的时候,旧Activity  会先执行,onpause,然后才会启动新的activity. 3. Activity在异常情况下被回收时,onSaveInstanceState方法会被回调,回调时机是在onStop之前,当Activity被重新创建的时 候,onRestoreInstanceState方法会被回调,时序在onSt

H5嵌入原生开发小结----兼容安卓与ios的填坑之路

一开始听说开发H5,以为就是做适配现代浏览器的移动网页,心想不用管IE了,欧也.到今天,发现当初too young too simple,兼容IE和兼容安卓与IOS,后者让你更抓狂.接下来数一下踩过的坑.主要分UI展示,键盘,输入框等等.解决bug最苦恼的问题不是没有解决方案,而是你没有找到真正的原因.再就是现象难以重现,每次都要发布代码,然后到手机app中去测试,模拟.这些地方会耗费大量的精力. 一.UI相关 1.安卓4.4以下不支持fixed布局. fixed布局的作用之一就是在手机键盘弹起

封装安卓的okhttp

1.封装了get方法,handler更新主线程,回调的onsuccess,onfailure,onerror等方法 2.配置文件 api 'com.android.support:recyclerview-v7:26.1.0' api 'com.squareup.okhttp3:okhttp:3.9.1' //fastjson api 'com.alibaba:fastjson:1.2.44' 3.先建立一个http包,建BaseHttpCallback和OkHttpHelper这2个类,以后会

安卓学习----使用okHttp(POST方式)---登录

工具类 package com.liunan.okhttpdemo3post.Utils; import java.io.IOException; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; import okhttp3.ResponseBody; /** * Created b

Android安卓开发知识库汇总

初级 Android 面试知识库 Android 面试题总结之Android 进阶(二) - fuchenxuan blog - 博客频道 - CSDN.NET 如何成为一名优秀的程序员 | Mystra 2016Android某公司面试题 | yuweiguo's blog 我面试到底问什么? - AndroidDeveloper - 知乎专栏 扫清Android面试障碍 [Android基础]Android总结篇 - 陶程的博客 - 博客频道 - CSDN.NET AndroidStudyD