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的基本用法,是不是感觉很轻便呢!
大家有什么问题可以通过留言的方式问我,希望这篇文章可以让
你学到更多。