Okhttp网络通信框架的使用

Okhttp框架的使用方法

首先先让大家看一下,传统网络通信的连接方法,以此来说明使用okhttp框架的好处。

这是URL的连接方法。

  public String get(String u) throws IOException {
        URL url = new URL(u);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setReadTimeout(5000);
        if (conn.getResponseCode()==200){
            InputStream inputStream = conn.getInputStream();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"GB2312");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuffer buffer = new StringBuffer();
            String ss;
            while((ss=bufferedReader.readLine())!=null)
                buffer.append(ss);
            bufferedReader.close();
            inputStreamReader.close();
            inputStream.close();
            json = buffer.toString();

        }
        return json;
    }

这是httpclient的连接。

  public String get(String url) throws IOException {
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet get = new HttpGet(url);
        HttpResponse httpResponse = httpClient.execute(get);
        int status = httpResponse.getStatusLine().getStatusCode();
        if (status==200){
            InputStream inputStream = httpResponse.getEntity().getContent();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuffer buffer = new StringBuffer();
            String ss;
            while ((ss = bufferedReader.readLine())!=null)
                buffer.append(ss);
            bufferedReader.close();
            inputStreamReader.close();
            inputStream.close();
             json = buffer.toString();
        }
        return json;
    }

这两种方式都是GET的连接方式,而且都是获取接口的Json数据的方式来体现的。
大体都是一样的,都是传入一个接口,然后进行连接,然后获取流,对数据进行处理等,最后得到我们想要的Json数据。

最后,我们来看一下,okhttp的处理方式:

 OkHttpClient okHttpClient = new OkHttpClient();
            FormBody.Builder builder = new FormBody.Builder();
            builder.add("参数名", 参数值);
            Request request = new Request.Builder()
                    .url("")
                    .post(builder.build())
                    .build();
            Response response = okHttpClient.newCall(request).execute();
            String json = response.body().string();

看完之后有没有很惊讶的感觉,没错,用okhttp只需要这么多代码,相比传统的方式,okhttp用起来是不是更加的轻便快捷呢。

接下来就告诉大家怎样使用okhttp框架。

如果你使用的是Eclipse的话,直接导入jarbao就行,如AndroidStudio,你也可以直接选择导入jar包,也可以直接
在build.gradle
中的最后添加 compile ‘com.squareup.okhttp3:okhttp:3.4.1’
,然后点击Build-ReBuild Project,会自动帮你下载。

如果你需要连接的接口,不需要传入参数,你就可以直接
这样:

  public String  get(String url){
        try {
            OkHttpClient okHttpClient = new OkHttpClient();
            Request request = new Request.Builder()
                    .url(url)//url为你需要进行连接的接口
                    .build();
            Response response = okHttpClient.newCall(request).execute();
            json =  response.body().string();
        }catch (Exception e){
            e.printStackTrace();
        }
        return json;
    }

最后得出我们想要的Json;
如果需要传入参数,就需要再添加点东西:

 OkHttpClient okHttpClient = new OkHttpClient();
            FormBody.Builder builder = new FormBody.Builder();
            builder.add("参数名", 参数值);
            //如果还有其他参数,在下面再进行build.add("参数名",参数值)
            Request request = new Request.Builder()
                    .url("http://192.168.14.178:8080/Wentity/Close")
                    .post(builder.build())
                    .build();
            Response response = okHttpClient.newCall(request).execute();
            String json = response.body().string();
            //json即我们需要得到的Json。

这就是okhttp的基本用法,是不是感觉很轻便呢!


大家有什么问题可以通过留言的方式问我,希望这篇文章可以让
你学到更多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不说话的匹诺槽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值