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() {

                    @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;
    }
}

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

你可能感兴趣的:(Android使用xUtils3上传文件)