java上传回调自定义变量问题

搞了2天,上传回调自定义变量一直无法获取到相应的值,昨天查了好像是没有将值赋值成功替换,导致回调变量的值为空。根据文档,Android端的代码如下

HashMap<String, String> map = new HashMap<>();
map.put("x:type", "1");
map.put("x:phone", "18659218070");
map.put("x:token", "0bd3cffb5c03d484cd9af76b51c5ab5a");
uploadManager.put(photoPath, fileName, mUploadToken, mUpCompletionHandler, mOptions);
UpCompletionHandler mUpCompletionHandler = new UpCompletionHandler() {

@Override
public void complete(String key, ResponseInfo info, JSONObject response) {
    DebugKit.e(TAG, "key:" + key);
    DebugKit.e(TAG, "statusCode:" + info.statusCode);
    DebugKit.e(TAG, "path:" + info.path);
    DebugKit.e(TAG, "头像上传错误信息:" + info.error);
    DebugKit.e(TAG, "reqId:" + info.reqId);
    DebugKit.e(TAG, createQiNiuNormalPicUrl(key));
    if (info.isOK() == true) {
        ToastKit.show(UserActivity.this, "头像上传成功");
        ImageLoader.getInstance().displayImage(createQiNiuNormalPicUrl(key), mUserPic, UILOptions.create());
    }
}

};
UploadOptions mOptions = new UploadOptions(map, null, false, new UpProgressHandler() {

@Override
public void progress(String key, double percent) {
    String fileName = null;
}

}, null);

以下是服务端上传 token代码

public HashMap<String, Object> getUploadToken() {

Auth auth = Auth.create(QiniuConfig.QINIU_ACCESS_KEY, QiniuConfig.QINIU_SECRET_KEY);

String token = auth.uploadToken(QiniuConfig.QINIU_BUCKET,null,2556028799L, new StringMap()

.put("callbackUrl","http://121.40.200.31/api/qiniuCallBack")

   .put("callbackBody", "fname=$(fname)&type=$(x:type)&phone=$(x:phone)&token=$(x:token)")

   .put("fsizeLimit", 5242880));

HashMap<String, Object> map = new HashMap<String, Object>();

map.putAll(JFinalUtil.doResult(true));

map.put("result", token);

return map;

}

获得回调结果只能获取到fname,也就是魔法变量,自定义变量都取不到

如上图可示,fname可以获取到相应的值,但是自定义变量都没有值,感觉是没有替换成功或者是APP端没有提交相应数据上去。

经过核查,map的是有值,或者能否输出上传的url链接供我们自行调试?

阅读 2.8k
1 个回答

callbackBody 这样设置的:
"callbackBody", "fname=$(fname)&type=$(x:type)&phone=$(x:phone)"
那么服务端获取的请求的字段是使用 phone 来获取

按照下面的方式再运行下:

UploadOptions mOptions = new UploadOptions(new StringMap().put("x:phone", "12345678912"), null, false, new UpProgressHandler(){
    public void progress(String key, double percent){

        DebugKit.e(TAG,"文件上传进度:"+percent);
    }
}, null);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进