调用azure RESTful 文本转语音的api接口时,在开发者工具上正常,真机调试时报错400?
调用azure RESTful 文本转语音的api接口时,在开发者工具上正常,真机调试时报错400? 步骤1:调用https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken 获得token。这一步在真机和开发者工具上运行时都是正常的。 //步骤2:
wx.request({
url: 'https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1',
method: 'POST',
data: `<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='zh-CN'><voice name='zh-CN-XiaoqiuNeural'>${text}</voice></speak>`,
header: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/ssml+xml',
'X-Microsoft-OutputFormat': 'audio-16khz-128kbitrate-mono-mp3',
},
responseType: "arraybuffer",
success: function (result) {
console.log(result)
}
})
第二步的result 在真机调试时,结果为:{data: null, profile: {…}, header: {…}, statusCode: 400, cookies: Array(0), …}
在开发者工具里的结果为:{data: ArrayBuffer(70272), header: {…}, statusCode: 200, cookies: Array(0), errMsg: "request:ok"}
想问一下有没有人也遇到过类似问题,需要我这边再修改什么吗? 看了一下文档:400错误的请求必需参数缺失、为空或为 null。 或者,传递给必需参数或可选参数的值无效。 常见原因是某个标头过长。但是它返回的里面没有更具体的错误原因。 User-Agent标头是小程序会自动添加的,我也不知道怎么修改。 参考的链接:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/rest-text-to-speech?tabs=streaming#authentication