创建get请求
新建类HttpGetRequest
public class HttpGetRequest {
public static void sendOkHttpGetRequst(String address,okhttp3.Callback callback){
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.get()
.url(address)
.build();
client.newCall(request).enqueue(callback);
}
}
在活动中调用
HttpGetRequest.sendOkHttpGetRequst("url", new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("get请求失败",e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("get请求成功",response.body().string());
}
});
post请求 跟get请求大同小异
post与get的区别是要传数据requestBody
public class HttpPostRequest {
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");//传json数据需要
// post
public static void okhttpPost(String url, RequestBody requestBody, okhttp3.Callback callback){
// RequestBody body = RequestBody.create(JSON,jsonData);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
client.newCall(request).enqueue(callback);
}
}
在活动中调用
RequestBody requestBody = new FormBody.Builder()
.add("username", users.get("userName").toString())
.add("password", users.get("password").toString())
.add("phone", users.get("phone").toString())
.build();
//url,参数,回调
HttpGetRequest.sendOkHttpGetRequst("url",requestBody , new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("post请求失败",e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("post请求成功",response.body().string());
}
});
//注:更新ui只能在主线程更新 即使用handler