话不多说,开发Android App网络请求莫过OkHttpUtils方便快捷了,平时用的最多可能是get和post请求了,最近用到put,这里记录一下以便码友们参考。
一、引入库:
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.squareup.okhttp3:okhttp:3.8.1'
implementation 'com.zhy:okhttputils:2.6.2'
二、GET请求示例:
private void requestGetData() {
String url = kNET_BASE_URL + "getApi";
OkHttpUtils.get()
.url(url)
.addParams("type", String.valueOf(kDEVICE_TYPE))
.addParams("state", String.valueOf(1))
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
Log.i("TAG", e.toString());
}
@Override
public void onResponse(String response, int id) {
Gson gson = new Gson();
RootModel rootModel = gson.fromJson(response, RootModel.class);
Log.i("TAG", response);
if (rootModel.getCode() == 0) { //成功
Log.i("TAG", "获取成功");
} else {
Log.i("TAG", "获取失败");
}
}
});
}
三、POST请求示例:
private void requestPostData(String contentStr) {
String url = kNET_BASE_URL + "postApi";
Map<String, String> params = new HashMap<>();
params.put("nickname", contentStr);
OkHttpUtils.post()
.url(url)
.params(params)
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
}
@Override
public void onResponse(String response, int id) {
mLoadingLayout.setVisibility(View.GONE);
Log.i(LOG_TAG, response);
Gson gson = new Gson();
BoolValueBean boolValueBean = gson.fromJson(response, BoolValueBean.class);
if (boolValueBean.getSuccess() == 1) { //成功
Log.i(LOG_TAG, "成功");
});
} else {
Log.i(LOG_TAG, "失败");
}
}
});
}
三、PUT请求示例:
private void requestPut(int videoid, double progress, double length) {
String url = kNET_BASE_URL + "putApi";
FormBody build = new FormBody.Builder()
.add("id", String.valueOf(videoid))
.add("progress", String.valueOf(progress))
.add("length", String.valueOf(length))
.build();
OkHttpUtils.put().requestBody(build).url(url)
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
Log.i("TAG", e.toString());
}
@Override
public void onResponse(String response, int id) {
Gson gson = new Gson();
RootModel rootModel = gson.fromJson(response, RootModel.class);
Log.i("TAG", response);
if (rootModel.getCode() == 0) { //成功
Log.i("TAG", "更新成功");
} else {
Log.i("TAG", "更新失败");
}
}
});
}
四、感谢 OkHttpUtils 之作者。