文章来自:http://blog.youkuaiyun.com/intbird
github:https://github.com/intbird/ANDIntbirdNetWork
0,HttpConnection,HttpClient,AysncHttp;
之前的日志:http://blog.youkuaiyun.com/intbird/article/details/38338623
1,Vellory:
------------------------
initVolleyObj();
initVolleyString();
initVolleyImage();
initVolleyImages();
initVolleyNetWorkImage();
initVolleyGson();
------------------------
private void initVolleyObj(){
RequestQueue queue = Volley.newRequestQueue(this);
// 如果不指定method,则 jsonObj参数为null时为GET,不为null时为POST;
// new JsonObjectRequest(ApiConstans.API_URL, getJsonObjParams(),..);
//如果method为GET ,则 jsonObj参数为null;
JsonObjectRequest objectRequest = new JsonObjectRequest(Request.Method.GET, ApiConstans.API_URL, getJsonObjParams(), new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
setJsonObjResponse(jsonObject.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
setJsonObjResponse(volleyError.toString());
}
});
queue.add(objectRequest);
queue.start();
}
private JSONObject getJsonObjParams(){
JSONObject jsonObject = new JSONObject();
try{
jsonObject.put("_id", "testinfo");
jsonObject.put("person", "foo");
jsonObject.put("phone", "bar");
}catch (Exception ex){
}
return jsonObject;
}
private void setJsonObjResponse(String message){
TextView textView = (TextView) findViewById(R.id.tv_hello);
textView.setText(message);
}
private void initVolleyString(){
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(ApiConstans.API_URL, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
setJsonObjResponse(s);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
setJsonObjResponse(volleyError.toString());
}
});
queue.add(stringRequest);
queue.start();
}
private void initVolleyImage(){
final ImageView imageView = (ImageView)findViewById(R.id.iv_hello);
RequestQueue queue = Volley.newRequestQueue(this);
ImageRequest imageRequest = new ImageRequest(ApiConstans.API_URL_IMG, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
imageView.setImageBitmap(bitmap);
}
}, imageView.getWidth(),
imageView.getHeight(),
ImageView.ScaleType.CENTER_CROP,
Bitmap.Config.ARGB_8888,
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
setJsonObjResponse(volleyError.toString());
}
});
queue.add(imageRequest);
queue.start();
}
private void initVolleyImages(){
final ImageView imageView = (ImageView)findViewById(R.id.iv_hello);
RequestQueue queue = Volley.newRequestQueue(this);
final LruCache<String,Bitmap> mImageCache = new LruCache<>(20);
ImageLoader.ImageCache imageCache = new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String s) {
return mImageCache.get(s);
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
mImageCache.put(s,bitmap);
}
};
ImageLoader mImageLoder = new ImageLoader(queue,imageCache);
ImageLoader.ImageListener imageListener =ImageLoader.getImageListener(imageView,
R.drawable.notification_template_icon_bg,
R.drawable.abc_ic_ab_back_mtrl_am_alpha);
mImageLoder.get(ApiConstans.API_URL_IMG, imageListener);
}
private void initVolleyNetWorkImage(){
final NetworkImageView imageView = (NetworkImageView)findViewById(R.id.iv_network_hello);
RequestQueue queue = Volley.newRequestQueue(this);
final LruCache<String,Bitmap> mImageCache = new LruCache<>(20);
ImageLoader.ImageCache imageCache = new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String s) {
return mImageCache.get(s);
}
@Override
public void putBitmap(String s, Bitmap bitmap) {
mImageCache.put(s,bitmap);
}
};
ImageLoader mImageLoder = new ImageLoader(queue,imageCache);
//ImageLoader.ImageListener imageListener =ImageLoader.getImageListener(imageView,
// R.drawable.notification_template_icon_bg,
// R.drawable.abc_ic_ab_back_mtrl_am_alpha);
//mImageLoder.get(ApiConstans.API_URL_IMG, imageListener);
imageView.setImageUrl(ApiConstans.API_URL_IMG, mImageLoder);
}
private void initVolleyGson(){
RequestQueue queue = Volley.newRequestQueue(this);
VolleyGsonRequest gsonRequest = new VolleyGsonRequest(ApiConstans.API_URL, PersonResponse.class, null, new Response.Listener<PersonResponse>() {
@Override
public void onResponse(PersonResponse response) {
setJsonObjResponse(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
setJsonObjResponse(volleyError.toString());
}
});
queue.add(gsonRequest);
queue.start();
}
2 ,OkHttp
----------------
okHttpGET();
okHttpGETAsyc();
okHttpPost();
okHttpPostFile();
----------------
private String okHttpGET() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(ApiConstans.API_URL)
.build();
try {
Response response = client.newCall(request).execute();
Reader reder = response.body().charStream();
return response.body().string();
} catch (Exception ex) {
Log.e("intbird", ex.toString());
}
return null;
}
private void okHttpGETAsyc(){
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(ApiConstans.API_URL)
.build();
client.newCall(request)
.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
textView.setText(e.toString());
}
@Override
public void onResponse(Response response) throws IOException {
textView.setText(response.body().toString());
}
});
}
private String okHttpPost() {
OkHttpClient okHttpClient = new OkHttpClient();
RequestBody requestBody = new FormEncodingBuilder()
.add("plat", "android")
.add("from", "client")
.build();
// RequestBody requestBody = new MultipartBuilder()
// .type(MultipartBuilder.FORM)
// .addFormDataPart("title","title")
// .addFormDataPart("image","filename",RequestBody.create(MediaType.parse("text/x-markdown; charset=utf-8"),new File("")))
// .build();
Request request = new Request.Builder()
.url(ApiConstans.API_URL)
.post(requestBody)
.build();
try {
Response response = okHttpClient.newCall(request).execute();
if (response.isSuccessful()) {
return response.body().string();
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private void okHttpPostFile(){
MediaType MEDIA_TYPE = MediaType.parse("text/x-markdown; charset=utf-8");
File file = new File("");
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(ApiConstans.API_URL)
.post(RequestBody.create(MEDIA_TYPE,file))
.build();
try {
Response respose = okHttpClient.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
3,Retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiConstans.HOST)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitService service = retrofit.create(RetrofitService.class);
Call<RetrofitMode> data = service.getModeData("p");//p in the path means php
data.enqueue(new Callback<RetrofitMode>() {
@Override
public void onResponse(Response<RetrofitMode> response) {
textView.setText(response.toString() + "\r\n" + response.body().toString());
}
@Override
public void onFailure(Throwable t) {
textView.setText(t.getMessage().toString());
}
});
public interface RetrofitService {
@GET("/{p}/index.php")
Call<RetrofitMode> getModeData(@Path("p")String pOrjType);
}