Okhttp网络通信框架的使用

来源:互联网 发布:怎么删除多重网络 编辑:程序博客网 时间:2024/05/21 19:36

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的基本用法,是不是感觉很轻便呢!


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

原创粉丝点击