okhttp
一. okhttp協議介紹
二.okhttp完成get請求
三.okhttp完成post請求
2.工具類
一. okhttp協議介紹
okhttp是一個第三方類庫,用於android中請求網絡。
這是一個開源項目,是安卓端最火熱的輕量級框架,由移動支付Square公司貢獻(該公司還貢獻了Picasso和LeakCanary) 。用於替代HttpUrlConnection和Apache HttpClient(android API23 裏已移除HttpClient)。
二.okhttp完成get請求
public void get(String url){
OkHttpClient.Builder budilder=new OkHttpClient.Builder();
budilder.readTimeout(30, TimeUnit.SECONDS);
budilder.connectTimeout(20,TimeUnit.SECONDS);
OkHttpClient client=budilder.build();
Request request=new Request.Builder().get().url(url).build();
Call call=client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//no ok
// Toast.makeText(MainActivity.this, "嚶嚶嚶", Toast.LENGTH_SHORT).show();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//ok
String string = response.body().string();
Log.i(TAG, "onResponse: "+string);
// Toast.makeText(MainActivity.this, "嚶嚶嚶"+string, Toast.LENGTH_SHORT).show();
}
});
}
三.okhttp完成post請求、
public void post(String url){
OkHttpClient client=new OkHttpClient.Builder().build();
//上傳的內容
// FormBody.Builder formBody= new FormBody.Builder();
//
// for (String k:body.keySet()){
// formBody.add(k,body.get(k));
// }
//
// FormBody build = formBody.build();
FormBody formBody1=new FormBody.Builder().add("phone","17552730873")
.add("passwd","123").build();
MultipartBody.Builder body2=new MultipartBody.Builder();
body2.setType(MultipartBody.FORM);
MultipartBody builder =
new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file","test.mp3", RequestBody.create(MediaType.parse("media/mp3"),new File("/mnt/sdcard/2.jpg"))).build();
final Request request=new Request.Builder().post(formBody1).url(url).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 ok = response.body().string();
Log.d(TAG, "onResponse: "+ok);
}
});
}
}