y***@qq.com
y***@qq.com
  • 发布:2025-02-06 15:25
  • 更新:2025-03-07 15:57
  • 阅读:568

【报Bug】HarmonyOS NEXT版本钉钉小程序使用uni.request POST请求问题

分类:uni-app

产品分类: uniapp/小程序/钉钉

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows11

HBuilderX类型: 正式

HBuilderX版本号: 4.51

第三方开发者工具版本号: 3.9.41

基础库版本号: 1.25.31

项目创建方式: HBuilderX

操作步骤:

hbuilderX 运行支付宝小程序运行,切换到钉钉小程序,预览模式下,使用鸿蒙NEXT版本钉钉扫码预览

预期结果:

问题1:预期200:::
问题2:预期200:::

实际结果:

问题1:实际{"message":"Parameter error","errMsg":"request:fail Parameter error"}
问题2:实际415:::

bug描述:

HarmonyOS NEXT版本钉钉小程序使用uni.request POST请求存在两个问题
问题1:uni.request post请求,data参数为undefined无法发起请求,疑似与HarmonyOS NEXT钉钉小程序兼容性问题,目前是临时采用强制data:{}解决
该问题在小程序模拟器、PC、Android、ios中不传递该参数均可正常访问,在HarmonyOS NEXT中提示{"message":"Parameter error","errMsg":"request:fail Parameter error"}

问题2:uni.request post请求,header设置contentType不生效,测试钉钉原生http请求写法重写,可以修改contentType
该问题在小程序模拟器、PC、Android、ios中均可正常访问,在HarmonyOS NEXT中提示415 Unsupported Media Type

2025-02-06 15:25 负责人:DCloud_UNI_OttoJi 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

先缩小下问题范围,你的代码在电脑钉钉小程序模拟器中运行是否正常,在 安卓 ios 真机上是否正常?

我使用下面的代码,vue3+HBuilderX alpha 4.51 运行到鸿蒙next 真机上,用钉钉扫码访问,表现正常,你给的 api 我访问不同,我修改了一个 api,你可以自己验证

我发现两个请求 content-type 都是 json,你可以修改我给的 demo 复现你的问题

更新:
我仔细测试了你提供的 demo,在 vendor.js 中搜索 key.toLocaleLowerCase() 临时兼容 Content-Type

if (key.toLocaleLowerCase() === 'content-type') {  
        headers['Content-Type'] = fromArgs.header[key]  
      } else {  
        headers[key.toLocaleLowerCase()] = fromArgs.header[key]  
      }

经过我测试问题 2 解决了

更新:
2025-03-07 验证最新版鸿蒙钉钉已经兼容 header 写法。这个改动会回退到兼容之前,避免其他系统出现兼容问题。

  • DCloud_UNI_OttoJi

    初步排查是鸿蒙钉钉小程序真机环境的问题,其他平台无问题,考虑合适的兼容方案。

    2025-02-07 18:12

  • DCloud_UNI_OttoJi

    下个 Alpha 会兼容修复

    2025-02-11 11:06

y***@qq.com

y***@qq.com (作者)

@DCloud_UNI_OttoJi
相关问题,我已重新整理修改提交,辛苦您按照我提供的demo使用鸿蒙NEXT版本钉钉真机验证一下。ps: 您提供的这个API接口,应该是application/x-www-form-urlencoded和application/json两种方式都支持,所以可以正常访问

用户2752650

用户2752650

我看原先和content-type被删除掉了, 这块是否可以保留?
服务端如有依赖content-type的逻辑的话, 现有业务不做改造会出错

  • DCloud_UNI_OttoJi

    你先临时修改保证不阻塞你代码吧,你私聊我吧,我看如何处理比较友好。之前测试了几个 api,发现服务端会自动处理 content-type 大小写

    2025-03-04 11:58

要回复问题请先登录注册