HarmonyOS 鸿蒙Next 文件上传时候一直报错401

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 文件上传时候一直报错401

request.uploadFile我使用这个文件上传方法,但是给我返回code:401,请问一下是哪里问题吗? 代码如下图片

2 回复

401一般可能是参数检查失败,包括必选参数没有传入,参数类型错误。无论是同步还是异步接口,此类异常大部分都通过同步的方式抛出: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/errorcode-universal-V13#section401-参数检查失败

您可以先自行检查一下,如果依然有问题,请上传详细的报错日志和可运行的demo文件。

根据您提供的代码,接口并没有返回空对象,只是UploadTask对象无法直接打印出来,可以通过uploadTask.on来订阅上传任务完成或失败事件,核心代码如下:

let upCompleteCallback = (taskStates: Array<request.TaskState>) => {

  for (let i = 0; i < taskStates.length; i++) {

    console.info("upOnComplete taskState:" + JSON.stringify(taskStates[i]));

  }

};

uploadTask.on('complete', upCompleteCallback);

let upFailCallback = (taskStates: Array<request.TaskState>) => {

  for (let i = 0; i < taskStates.length; i++) {

    console.info("upOnFail taskState:" + JSON.stringify(taskStates[i]));

  }

};

uploadTask.on('fail', upFailCallback);

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-request-V13#uploadtask

您说的接口没有收到调用是什么情况,是说服务器没有收到上传的图片还是指什么?uploadTask.on 返回responseCode为0,代表图片上传成功,可以发一下console.info(“upOnComplete taskState:” + JSON.stringify(taskStates[i]))打印结果看一下,根据您提供的代码,可以调整一下,

files: [

   { filename: this.uploadFileName, name: 'file', uri: `internal://cache/${this.uploadFileName}`, type: 'jpg' }

],

request.uploadFile上传图片成功后后台会返回图片地址 可以使用uploadTask.on(‘complete’, upCompleteCallback)获取文件路径path 参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-request-V13#taskstate9

uploadFile接口上传完成成功没有返回值,可以参考开启on(‘headerReceive’),其中响应体的 header 和 body 都会在这个 header object 里存放。 参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-request-V13#onheaderreceive7

尝试订阅服务端请求信息,获取的headers中包含有header和body

let headerCallback = (headers: object) => {

console.info(“upOnHeader headers:” + JSON.stringify(headers));

};

uploadTask.on(‘headerReceive’, headerCallback);

更多关于HarmonyOS 鸿蒙Next 文件上传时候一直报错401的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 文件上传时一直报错401,这通常指示着权限或认证失败。以下是对该问题的详细分析:

  1. 权限验证问题:401错误代码代表未经授权或身份验证失败。请确保在鸿蒙应用端进行文件上传时正确设置了认证信息,如Token、Basic Auth或其他自定义的认证机制。
  2. 配置参数校验错误:检查鸿蒙应用上传文件时使用的配置参数是否符合后端接口要求,包括文件内容格式(multipart/form-data)、文件字段名、是否有额外必填参数遗漏或填写错误等。
  3. 检查Spring框架的Security配置:确认对于上传文件的接口路径是否有特殊的访问控制规则。

针对以上分析,你可以逐一排查并修正可能的问题点。同时,确保前端上传文件时将Content-Type设置为’multipart/form-data’,并正确携带身份验证信息。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。他们将能够提供更具体的帮助和指导。

回到顶部