uni-app 安卓手机request的请求头有中文请求无法发出

uni-app 安卓手机request的请求头有中文请求无法发出

示例代码:

uni.request({
header:{
realName:'你好'
}
})

操作步骤:

访问带中文请求头的请求

预期结果:

成功

实际结果:

失败

bug描述:

安卓手机request的请求头有中文请求无法发出

1 回复

更多关于uni-app 安卓手机request的请求头有中文请求无法发出的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个常见的编码问题。在Android平台上,请求头中的中文字符需要正确编码才能正常发送。

解决方案:

  1. 使用 encodeURIComponent() 对中文进行编码:
uni.request({
  header: {
    realName: encodeURIComponent('你好')
  }
})
  1. 服务端需要对编码后的值进行解码:
  • Java: URLDecoder.decode(realName, "UTF-8")
  • PHP: urldecode($realName)
  • Node.js: decodeURIComponent(realName)
  1. 如果需要保持请求头可读性,可以考虑:
  • 使用拼音或英文替代中文
  • 将中文参数放在请求体而非请求头中
  • 使用Base64编码
  1. 完整示例:
uni.request({
  url: 'your-api-url',
  method: 'POST',
  header: {
    'realName': encodeURIComponent('你好'),
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  success: (res) => {
    console.log(res.data)
  }
})
回到顶部