依赖::
implementation 'com.squareup.okhttp3:okhttp:3.12.1'//okhttp依赖
get请求:
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.callTimeout(5, TimeUnit.SECONDS);//连接超时
builder.readTimeout(5,TimeUnit.SECONDS);//读取超时
OkHttpClient client = builder.build();
Request.Builder builder1 = new Request.Builder();
builder1.url("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&");
builder1.get();
Request request = builder1.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
//请求失败
@Override
public void onFailure(Call call, IOException e) {
}
//请求成功
@Override
public void onResponse(Call call, Response response) throws IOException {
//获得响应体:json串
ResponseBody body = response.body();
//通过body直接转成字符串
String json = body.string();
//获取到网络的json字符串
}
});
post请求:
OkHttpClient client = new OkHttpClient.Builder()
.callTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.build();
FormBody formBody = new FormBody.Builder()
.add("phone", "13594343356")
.add("passwd", "123654")
.build();
final Request request = new Request.Builder()
.url("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&")
.post(formBody)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
//获取到json字符串
}
});
下载文件:
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(5, TimeUnit.SECONDS)
.callTimeout(5, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.get()
.url("http://169.254.113.244/hfs/a.jpg")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失败
}
@Override
public void onResponse(Call call, Response response) throws IOException {//成功
ResponseBody body = response.body();
//获取总长度
long l = body.contentLength()
InputStream inputStream = body.byteStream();
}
});
上传文件
OkHttpClient client = new OkHttpClient.Builder()
.callTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.build();
MultipartBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", "aaaa.mp3",
RequestBody.create(MediaType.parse("media/mp3"), new File("/sdcard/XXX.mp3")))
//其中。。第一个类型是固定格式(file),第二个是上传到服务器的名字,第三个是requestbody需要方法create
.build();
final Request request = new Request.Builder()
.url("http://172.21.79.88/hfs")
.post(requestBody)
//post请求。。
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
}
});