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

  今天在做上传时遇到问题,便把我的代码粘到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() {

									@Override
									public void onFailure(int arg0,
											Header[] arg1, byte[] arg2,
											Throwable arg3) {
										// TODO Auto-generated method stub

									}

									@Override
									public void onSuccess(int arg0,
											Header[] arg1, byte[] arg2) {
										System.out.println("上传成功");
										Toast.makeText(Upload.this, "上传成功!",
												Toast.LENGTH_LONG).show();

									}

								});

					} catch (FileNotFoundException e) {

					}
这样,就可以图片就可以上传了。服务端只要用写个servlet来接收就行了,mark一下,高手勿喷。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值