android:安卓中5中网络请求库之Vellory OkHttp Retrofit
2015-10-12 19:15
856 查看
文章来自:http://blog.csdn.net/intbird
github:https://github.com/intbird/ANDIntbirdNetWork
github:https://github.com/intbird/ANDIntbirdNetWork
0,HttpConnection,HttpClient,AysncHttp;
之前的日志:http://blog.csdn.net/intbird/article/details/383386231,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); }
相关文章推荐
- 计算机网络
- Java基础知识强化之网络编程笔记11:TCP之TCP协议上传文本文件
- Java基础知识强化之网络编程笔记10:TCP之客户端读取文本文件服务器控制台输出
- “大师兄”社区(http://www.daxixiong.com/)欢迎你!!!
- 客户端通过http访问服务器端乱码问题的解决方案
- 网络编程 笔记(三) 套接字类型 协议设置
- iOS通过HTTP POST上传文件
- CPU亲缘性及网卡中断绑定
- 从源码安装apache httpd,并加载对php的支持
- ios测试基础一:mac下HTTP与HTTPS抓包
- POJ 1149 PIGS
- android中URLConnection和HttpURLConnection
- IOS网络编程简单介绍
- http\网络\
- HTTP协议初识
- Android中基于Http请求获取数据基础
- HTTP (http://) resource load since it is insecure.
- 错误代码:0x80070035 找不到网络路径
- ios-监听网络状态
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI