OkHttp简单使用
OkHttp是什么?
OkHttp是目前最为广泛使用的网络请求框架。
1.引入库
implementation "com.squareup.okhttp3:okhttp:4.9.0"
2.配置权限
<uses-permission android:name="android.permission.INTERNET" />
OkHttp的使用
1.Get同步请求
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder().url("https://www.httpbin.org/get?name=yge&age=18").get().build();
Call call = client.newCall(request);
try {
Response response = call.execute();
Log.e("getBtn results",response.body().string());
}catch (IOException e){
e.printStackTrace();
}
}
}).start();
2.Get异步请求
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder().url("https://www.httpbin.org/get?name=yge&age=18").get().build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
Log.e("getAsynBtn error",e.getMessage());
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
Log.e("getAsynBtn results",response.body().string());
}
});
3.Post同步请求
new Thread(new Runnable() {
@Override
public void run() {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder()
.add("name","yyyyy")
.add("age","18")
.build();
Request request = new Request.Builder().url("https://www.httpbin.org/post").post(body).build();
Call call = client.newCall(request);
try {
Response response = call.execute();
Log.e("postBtn results",response.body().string());
}catch (IOException e){
e.printStackTrace();
}
}
}).start();
4.Post异步请求
OkHttpClient client1 = new OkHttpClient();
RequestBody body = new FormBody.Builder()
.add("name","yyy")
.add("age","18")
.build();
Request request1 = new Request.Builder().url("https://www.httpbin.org/post").post(body).build();
Call call1 = client1.newCall(request1);
call1.enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
Log.e("getAsynBtn error",e.getMessage());
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
Log.e("getAsynBtn results",response.body().string());
}
});