Android使用xUtils3上传文件

xUtils3使用HttpUrlConnection来发送http请求,可以实现最大2G的大文件上传。

1.首先还是在application中初始化:

x.Ext.init(this);

2.然后使用org.xutils.http包下的RequestParams来构造参数。

params = new RequestParams(url);

params.addBodyParameter("upload", new File(fileName));

3.使用Callback.Cancekable来进行请求回调:

                Callback.Cancelable cancelable
                        = x.http().post(params, new Callback.CommonCallback<ResponseEntity>() {

                    @Override
                    public void onSuccess(ResponseEntity result) {
                        Snackbar.make(view, "上传成功", Snackbar.LENGTH_LONG)
                                .setAction("Action", null).show();
                    }

                    @Override
                    public void onError(Throwable ex, boolean isOnCallback) {
                        
                        Snackbar.make(view, "上传失败", Snackbar.LENGTH_LONG)
                                .setAction("Action", null).show();
                       
                    }

                 }); 

其中ResponseEntity为构造的实体对象。代码如下:

@HttpResponse(parser = ResultParser.class)
public class ResponseEntity {
    private String result;

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }
}

类名上的注解用来解析返回值,便于隐藏解析细节。会自动调用ResponseParser来解析服务器的返回值

ResultParser类:

public class ResultParser implements ResponseParser {
    @Override
    public void checkResponse(UriRequest request) throws Throwable {

    }

    @Override
    public Object parse(Type resultType, Class<?> resultClass, String result) throws Throwable {

        ResponseEntity responseEntity = new ResponseEntity();
        responseEntity.setResult(result);
        //返回ResponseEntity对象
         return responseEntity;
    }
}

这样就完成了文件的上传。


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值