今天才知道的开源项目,真是落后

来源:互联网 发布:淘宝微淘官网登陆首页 编辑:程序博客网 时间:2024/05/19 16:21

  今天在做上传时遇到问题,便把我的代码粘到Android群里,才知道原来我已经落后的不至一点点,或者说从来没有进步过,我的代码他们说很老的方法,现在Android中上传都用开源框架Android-async-http,这个在网上一百度,一大堆,而且很好用,在官网上下载好包,导入,剩下的上传只需要一个助手类和几行代码即可。

具体操作如下,首先我建了个助手类,这里我为Httputil.java,代码如下

package com.tianditu.utils;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;import com.loopj.android.http.BinaryHttpResponseHandler;import com.loopj.android.http.JsonHttpResponseHandler;import com.loopj.android.http.RequestParams;public class HttpUtil {private static AsyncHttpClient client = new AsyncHttpClient(); // 实例话对象static {client.setTimeout(11000); // 设置链接超时,如果不设置,默认为10s}public static void get(String urlString, AsyncHttpResponseHandler res) // 用一个完整url获取一个string对象{client.get(urlString, res);}public static void get(String urlString, RequestParams params,AsyncHttpResponseHandler res) // url里面带参数{client.get(urlString, params, res);}public static void get(String urlString, JsonHttpResponseHandler res) // 不带参数,获取json对象或者数组{client.get(urlString, res);}public static void get(String urlString, RequestParams params,JsonHttpResponseHandler res) // 带参数,获取json对象或者数组{client.get(urlString, params, res);}public static void get(String uString, BinaryHttpResponseHandler bHandler) // 下载数据使用,会返回byte数据{client.get(uString, bHandler);}public static AsyncHttpClient getClient() {return client;}}
在完成这个类以后,在调用其中的方法,如下:

String filpath = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/"+ "formats/quick_search_widget_night.JPEG";System.out.println(filpath);File myFile = new File(filpath);RequestParams params = new RequestParams();try {params.put("filename", myFile);AsyncHttpClient client = new AsyncHttpClient();client.post(HOST, params,new AsyncHttpResponseHandler() {@Overridepublic void onFailure(int arg0,Header[] arg1, byte[] arg2,Throwable arg3) {// TODO Auto-generated method stub}@Overridepublic void onSuccess(int arg0,Header[] arg1, byte[] arg2) {System.out.println("上传成功");Toast.makeText(Upload.this, "上传成功!",Toast.LENGTH_LONG).show();}});} catch (FileNotFoundException e) {}
这样,就可以图片就可以上传了。服务端只要用写个servlet来接收就行了,mark一下,高手勿喷。

看来真的要时时保持学习啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0 0