在Android中进行多部分文件上传的好方法

 闻汝婕环境_259 发布于 2023-02-11 10:00

我正在编写一段代码来执行多部分表单数据POST请求,在我的情况下,只是将图像上传到带有参数的服务器.这就是我现在拥有的:

我有一个触发多部分请求的按钮,在按钮OnClickListener中,我有这个代码来旋转一个新线程:

new Thread(new Runnable(){

@Override
public void run() {

    String photoUri = getPhotoUri();
    String url = getEndPointUrl();

    try {   

    NewPostRequest.postFile(url, photoUri, );

    } catch (Exception e) {
        // Exception Handling           
    } 
}).start();

而且NewPostRequest.postFile只是使用Apache Http Client发出请求,基本如下:

HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

MultipartEntityBuilder builder = MultipartEntityBuilder.create();    

builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

File file = new File(fileUri);

FileBody fb = new FileBody(file);

builder.addPart("file", fb);

builder.addTextBody("param", otherParam);

HttpEntity entity = builder.build();

post.setEntity(entity);

HttpResponse response = client.execute(post);      

我需要每次都旋转一个新线程,因为最近的Android版本不允许程序在UI线程上发出http请求.但是,我真的反对旋转一个随机线程,让它像上面的代码一样失控.我曾尝试使用Google Volley库,但在上传像image这样的大型数据文件时,它并不是一个很少的工具.

我想知道我应该做些什么来使这个电话更容易管理?

=====更新=====

我切换到使用AsyncTask,它现在可以正常工作.我将保持这个问题,看看是否有任何人有更好的方法.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有