Okhttp3的简单使用

1.get请求:

/**
 *
 *okhttp get请求
 * */
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /**
         * 创建okhttpClient对象
         * */
        OkHttpClient mOkHttpClient = new OkHttpClient();
        /**
         *创建Request对象
         **/
        final Request request = new Request.Builder()
                .url("http://v.juhe.cn/toutiao/index?type=top&key=3f8238bb55566d2b3f0d2204a5e9631f")
                .build();
        /**
         * new Call
         * */
        Call call = mOkHttpClient.newCall(request);

        /**
         * 请求调度
         * */
        call.enqueue(new Callback()
        {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.e(TAG, "onFailure: "+e.toString());
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String htmlStr =  response.body().string();
                Log.d(TAG, "onResponse() called with: " + "call = [" + call + "], response = [" + htmlStr + "]");
            }
        });
    }
}

2,post请求:

/**
 *
 * okhttp  post请求
 * */
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    /**
     * 请求地址
     * */
    String URL = "这里为请求地址";
    JSONObject obj = new JSONObject();
    String sss;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /**
         * post请求体为json字符串
         * */
        try {
            obj.put("name", "123");
            obj.put("pwd", "456");
            sss = obj.toString();
            post(URL, sss);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

   public void post(String url, String json) throws IOException {
        OkHttpClient client = new OkHttpClient();
        MediaType JSON = MediaType.parse("application/json; charset=utf-8");
        RequestBody body = RequestBody.create(JSON, json);
        Request request = new Request.Builder().url(url).post(body).build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.e(TAG, "onFailure: "+e.toString() );
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {

                Log.i(TAG, "onResponse*: "+response.body().string());
            }
        });

    }
}
时间: 2024-12-28 06:49:52

Okhttp3的简单使用的相关文章

OkHttp3的简单使用(二)

OkHttp3的简单封装 public class OkHttpUtil { public static final String TAG="OkHttpUtil"; private static OkHttpClient client; private static OkHttpUtil httpUtil; private OkHttpUtil(){ client=new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECO

OkHttp3的简单使用(一)

一.导入 1)gradle方式: compile 'com.squareup.okhttp3:okhttp:3.8.0'(okhttp 最新版) compile 'com.squareup.okio:okio:1.13.0'(okio最新版) 2)jar包导入 okhttp-3.3.0.jar okio-1.8.0.jar 3)权限 <!--网络访问权限--> <uses-permission android:name="android.permission.INTERNET&

okhttp3 get post 简单封装

最近打算在新项目中使用 okhttp3, 简单封装了一下异步 get post 因为 CallBack 也是在子线程中执行,所以用到了 Handler public class MyOkHttpClient { private static MyOkHttpClient myOkHttpClient; private OkHttpClient okHttpClient; private Handler handler; private MyOkHttpClient() { okHttpClien

Android开发之OkHttp3.4.x

android从4.4开始,HttpUrlConnection开始使用okhttp作为底层实现.实现原理如下图: 这篇博客简单说一下okhttp的使用.文字部分没有讲清楚的,可以查看代码里面的注释.首先看一下okHttp怎么工作的. 首先我们看看一个okhttp完整的网络访问,都涉及到了那几个类(这里先说核心类). 1.OkHttpClient: Call类的工厂,Call是用来发送网络请求和接收服务器响应的类.这个类实例可以设置拦截器,缓存大小,缓存目录,连接池等信息. 2.Request:是

[转]OkHttp3 最有营养的初级教程

一.前言 自从Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpClient的支持,而市面上流行的Retrofit同样是使用OkHttp进行再次封装而来的.由此看见学习OkHttp的重要性. 本篇文章是以当前最新的版本 3.5.0为例(2.0及以上版本版本与3.0以上版本存在较大差异,本文不做深入讨论,请自行百度),使用Android Stuido作为开发环境,带领

Android Volley+OkHttp3+Gson 开源库的封装

博客将按照下面的步骤介绍Volley的重新封装: 1.OkHttp3的关于Volley的HttpStack实现 2.HttpRequest的实现和HttpListener回调监听的封装 3.Volley原始的Request的Wrap 4.各种方式的请求的重新实现 5.统一请求的实现 6.使用 所需依赖: compile 'com.android.volley:volley:1.0.0' compile 'com.squareup.okio:okio:1.7.0' compile 'com.squ

OkHttp3使用详解

引言 最初我们进行HTTP请求时使用的是HttpURLConnection或者HttpClient,那么这两者都有什么优缺点呢? HttpClient是Apache基金会的一个开源网络库,功能十分强大,API数量众多,但正是由于庞大的API数量使得我们很难在不破坏兼容性的情况下对它进行升级和扩展,所以Android团队在提升和优化HttpClient方面的工作态度并不积极.官方在Android 2.3以后就不建议用了,并且在Android 5.0以后废弃了HttpClient,在Android

OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retrofit 更简单易用。

okhttp-OkGo 项目地址:jeasonlzy/okhttp-OkGo 简介:OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持 RxJava,比 Retrofit 更简单易用.该库是封装了 okhttp 的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持 Https 和自签名证书,支持 cookie 的持久化和自动管理,支持四种缓存模式缓存网络数据,支持 301 和 302 重定向,扩展了

Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava

Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava Retrofit,因为其简单与出色的性能,也是受到很多人的青睐,但是他和以往的通信框架还是有点区别,不过放心,因为他本身还是挺简单的,所有我相信你看完这篇文章,对基本的请求是没什么问题的,其实现在网上这样的文章也有很多了,好了,那我们直接开车吧! 一.相关资料 Github:https://github.com/square/retrofit 官网文档:http://square