在上一篇,讲解了Http基本的GET和POST请求,如果不了解可以参考我的上一篇文章OkHttp的基本使用-1(Http协议介绍)
下面介绍最简单的GET和POST请求
GET请求
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https:www.baidu.com")
.get()
.build();
try {
Response response = client.newCall(request).execute();
//OkHttp有一个异步方法,
//client.newCall(request).enqueue(new Callback() {
//@Override
//public void onFailure(Call call, IOException e) {
//
//}
//
//@Override
//public void onResponse(Call call, Response response) throws IOException {
//
//}
//});
Log.d("TAG", response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
POST From请求
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody
.Builder()
.add("phone", "xxxx")
.add("password", "xxxxx")
.build();
Request request = new Request.Builder()
.post(body)
.url("http://192.168.0.103/Login/login/")
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("TAG12", e.getLocalizedMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("TAG12", response.message());
if(response.isSuccessful()){
Log.d("TAG12", response.body().string());
}
});
POST JSON 请求
try {
OkHttpClient client = new OkHttpClient.Builder().build();
JSONObject object = new JSONObject();
object.put("phone", "xxxxxxx");
object.put("password", "xxxxxxxx");
RequestBody body = RequestBody.create(MediaType.parse("application/json"), object.toString());
Request request = new Request.Builder()
.url("http://192.168.0.103/Login/login/")
.post(body)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("TAG12", e.getLocalizedMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("TAG12", response.message());
if (response.isSuccessful()) {
Log.d("TAG12", response.body().string());
}
}
});
} catch (Exception e){
Log.d("TAG12", e.getMessage());
}
GET 方式下载
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder()
.url("http://192.168.0.103/Login/login/")
.get()
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.d("TAG12", e.getLocalizedMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.d("TAG12", response.message());
if (response.isSuccessful()) {
//Log.d("TAG12", response.body().string());
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(path, "1.wmv");
OutputStream os = new FileOutputStream(file);
InputStream is = response.body().byteStream();
int len = -1;
byte[] b = new byte[1024];
while (-1 != (len = is.read(b))){
os.write(b, 0, len);
Log.d("TAG12", "正在下载");
}
Log.d("TAG12", "下载完成");
}
}
});