okhttp使用

Posted 丛林小阁楼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了okhttp使用相关的知识,希望对你有一定的参考价值。

okhttp是一种新的网络请求框架,对网络强求做了优化。

同步调用:

    public static String getStringByUrl(String url){
        try {
            initClient();
            Request request = new Request.Builder()
                    .url(url)
                    .build();
            Response response = client.newCall(request).execute();
            String result = response.body().string();
            return result;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    private void okhttpTest(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                final String url = "http://www.baidu.com";
                final String result = OkhttpUtils.getStringByUrl(url);
                new Handler(Looper.getMainLooper()).post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }).start();
    }

异步调用:

    private void okhttpTest3(final Context context){
        final String url = "https://www.baidu.com";
        Request request = new Request.Builder()
                .url(url)
                .build();
        OkHttpClient client = new OkHttpClient();
        Call call = client.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Request request, IOException e) {
                new Handler(Looper.getMainLooper()).post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(context, "Fail!", Toast.LENGTH_SHORT).show();
                    }
                });
            }
            @Override
            public void onResponse(Response response) throws IOException {
                final String result = response.body().string();
                new Handler(Looper.getMainLooper()).post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });
    }

 

以上是关于okhttp使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OkHttp 连接 SPDY 网站?

从OKHttp框架看代码设计

okhttp的简介之简单封装

OkHttp完全解析之整体调用流程

在 Volley 中实现 POST 请求时出现错误代码 400,但在使用 OkHttp 时却没有

OkHttp使用学习