如何解决无法使用 node-fetch 解析响应消息
我的目标是阅读响应中返回的消息。我正在使用 node-fetch 并且响应被压缩。这是我目前所拥有的:
const response = await fetch(config.url,{
method: 'POST',body: request,headers: {'Content-Type': 'application/json; charset=UTF-8','x-tn-api_key':config.key,'x-tn-api_signature':generateAPISignature()}
})
let deserializedResponse = await response.json()
这是 deserializedResponse 的样子:
{
"timestamp": "2021-03-03T22:34:37.362+0000","status": 400,"error": "Bad Request","message": "JSON parse error: Cannot deserialize instance of `xyz` out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `xyz` out of START_ARRAY token\n at [Source: (PushbackInputStream); line: 1,column: 1]","path": "/a/v1/events"
}
message 字段有 json 解析错误,如何读取 message 字段?基本上,如果调用失败,我想记录消息以进行调试。
更新:我将请求对象硬编码到某个静态对象,但仍然出现相同的错误。当我将相同的静态对象复制粘贴到 Postman 时,它工作正常。有谁知道为什么 body:request 被读取为请求数组?似乎这就是错误的原因,因为它期望请求中有一个对象,而不是一个对象数组
解决方法
更换
import regex
names = ['d((123))','d(1a)(ab)','d(1a)(ab)(123)']
pattern = r'\((?:[^()]*?\d[^()]*?|(?R))+\)'
print ([regex.sub(pattern,'',x) for x in names])
与
['d','d(ab)','d(ab)']
好像解决了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。