OkHttp

一、get

1.拿到OkHttpClient对象

OkHttpClient okHttpClient = new OkHttpClient();

2.创建请求Request内容

Request.Builder builder = new Request.Builder();

Request request = builder.get().url("https://www.baidu.com/").build();

3.将Request封装为Call,发送请求

Call call = OkHttpClient.newCall(request);

4.执行call,创建请求返回的内容

A---Response response = call.execute();------------同步

B---call.enqueue(new Callback(){     ------------异步,可以修改UI,加上异步处理

            @Override

            public void onFailure(Call call, IOException e) {

                Log.e(TAG, "请求失败的原因:" + e);

            }

            @Override

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

                Headers headers = response.headers();

                Set<String> names = headers.names();

                for (String name : names) {

                    Log.e(TAG, "请求的header" + name);

                    String value = headers.get(name);

                    Log.e(TAG, "值为: " + value + "\n----------------------------------");

                }

                final String date = response.body().string();--------值只能获取一次

                mHandler.post(new Runnable() {

                    @Override

                    public void run() {

                        mTvShow.setText(date);

                    }

                });

            }

});


二、POST

/*1.创建OkHttpClient对象*/

OkHttpClient httpClient = new OkHttpClient();

/*2.创建相应的表单内容*/

FormBody formBody = new FormBody.Builder()

                .add("key", "value")

                .build();

/*3.创建请求Request内容*/

Request request = new Request.Builder()

                .url("https://wwws.baidu.com/")

                .post(formBody)

                .build();

/*4.发送请求*/

Call call = httpClient.newCall(request);

/*5.创建请求的回调*/

        call.enqueue(new Callback() {

            @Override

            public void onFailure(Call call, IOException e) {

                Log.e(TAG, "请求失败的原因:" + e);

            }

            @Override

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

                Headers headers = response.headers();

                Set<String> names = headers.names();

                for (String name : names) {

                    Log.e(TAG, "请求的header" + name);

                    String value = headers.get(name);

                    Log.e(TAG, "值为: " + value + "\n----------------------------------");

                }

                final String date = response.body().string();

                mHandler.post(new Runnable() {

                    @Override

                    public void run() {

                        mTvShow.setText(date);

                    }

                });

            }

        });

    }

三、一些服务器返回的设置

OkHttpClient httpClient = new OkHttpClient.Builder()

            //设置相应的连接池

            .connectionPool(new ConnectionPool())

          //连接超时

            .connectTimeout(15, TimeUnit.SECONDS)

          //写入超时

            .writeTimeout(15, TimeUnit.SECONDS)

        //读取超时

            .readTimeout(20, TimeUnit.SECONDS)

            .build();


--------本人小白,只做笔记,文章均来自网络,不喜勿喷,侵权删

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容