博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android採用async框架实现文件上传
阅读量:6615 次
发布时间:2019-06-24

本文共 2185 字,大约阅读时间需要 7 分钟。

页面效果

须要的权限

  <uses-permission android:name="android.permission.INTERNET"/>

网络訪问权限;

布局文件:

核心代码

package com.examp.uplodefile;import java.io.File;import java.io.FileNotFoundException;import org.apache.http.Header;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;import com.loopj.android.http.RequestParams;public class MainActivity extends Activity {	private EditText et_url;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		et_url = (EditText) findViewById(R.id.et_url);	}	public void startUplode(View view) {		// 获取上传文件的地址		String filePath = et_url.getText().toString().trim();		// 创建出文件对象		File file = new File(filePath);		// 定义上传的server地址		String path = "http://172.22.64.193:8080/0001AndroidWebService/UplodeFileServlet";		// 推断文件的大小,及是否存在		if (file.exists() && file.length() > 0) {			// 使用开源框架,			//			AsyncHttpClient client = new AsyncHttpClient();			// 上传的參数			RequestParams params = new RequestParams();			try {				// 加入上传的数据				params.put("file", file);			} catch (FileNotFoundException e) {				// TODO Auto-generated catch block				e.printStackTrace();			} // Upload a File				// 发送上传的消息,..并处理结果			client.post(path, params, new AsyncHttpResponseHandler() {				@Override				public void onSuccess(int statusCode, Header[] headers,						byte[] responseBody) {					System.out.println("==========" + statusCode);					for (int i = 0; i < headers.length; i++) {						System.out.println("&&&&&&" + headers[i]);					}					System.out.println("********" + new String(responseBody));				}				@Override				public void onFailure(int statusCode, Header[] headers,						byte[] responseBody, Throwable error) {					System.out.println("==========" + statusCode);					for (int i = 0; i < headers.length; i++) {						System.out.println("&&&&&&" + headers[i]);					}					System.out.println("********" + new String(responseBody));					System.out.println("--------" + error);				}			});		}	}}
编写前提是将框架代码已经导入到项目中

框架代码下载

你可能感兴趣的文章
paper 96:计算机视觉-机器学习近年部分综述
查看>>
vuex状态管理详细使用方法
查看>>
不要等有了足够的钱才选择去创业!!!
查看>>
手把手教你画嘴巴,以后再也不怕画嘴巴了
查看>>
selenium - webdriver - 截图方法get_screenshot_as_file()
查看>>
linux 命令 — archive
查看>>
强大的jQuery网格插件 ParamQuery
查看>>
io.lettuce.core.RedisCommandTimeoutException: Command timed out
查看>>
种子填充算法描述及C++代码实现
查看>>
Kali渗透测试——快速查找Metasploit的模块
查看>>
如何生成项目的chm文档
查看>>
java封装httpClient工具(支持http和https,包含get和post请求)
查看>>
Rocket - diplomacy - LazyModuleImpLike
查看>>
如何取消OneNote的粘贴来源地址
查看>>
Nginx+Tomcat实现动静分离
查看>>
Exchange Server 2016管理系列课件25.管理安全通讯组
查看>>
考前必背的50个知识点——系统集成项目管理工程师考试
查看>>
计算机科学,大一学生怎样来爱你(文&PPT)
查看>>
linux中vmstat命令详解
查看>>
PHP 开发社区微信服务号实战图解
查看>>