axios Request Error - 消息序列化失败(无效编码)

Axios Request Error - Message serialization failure (Invalid encoding)

我收到以下错误:

Error: 13 INTERNAL: Request message serialization failure: invalid encoding

当我尝试 运行 这个 axios post 时。任何想法出了什么问题? (我试过很多不同的版本,但错误不是很具体)

运行 Node.js 使用来自 Firebase 函数的 Axios。

 const result = await axios.post('https://example_api_url.com', {
            data1: "data1",
            data2: "data2,
        }, {
          headers: {
            'Authorization': `Bearer ${API_KEY}`,
            'Content-Type': 'application/json'
          }});

您可以将编码和响应类型添加到请求中:

 const result = await axios.post('https://example_api_url.com', {
            data1: "data1",
            data2: "data2,
        }, {
          headers: {
            'Authorization': `Bearer ${API_KEY}`,
            'Content-Type': 'application/json',
            'responseEncoding' : 'json',  // the type of data server will respond
            'responseEncoding': 'utf-8' // used only for node.js
          }});

我附上 axios 文档,我建议查看其配置对象 属性 详细信息。

这个错误似乎来自 node.js grpc 客户端 library.

gRPC 是一种语言中立、平台中立、开源的远程过程调用 (RPC) 系统,最初开发于 Google。支持 gRPC 的云 API 通常同时具有 REST 和 RPC 接口,因此除了使用 JSON 通过 HTTP 与 REST 接口通信之外,支持 gRPC 的 API 客户端还可以使用协议缓冲区和 gRPC 通过 HTTP2 与 RPC 接口对话。您可以在 documentation.

中探索有关它的更多详细信息

错误不应该是由于使用了axios库,因为它与grpc无关。这让我认为错误可能来自 服务本身 ,而不是客户端,但很难确定。

由于这是一个 grpc 客户端错误,很可能是 Google API 被调用时使用了某种无效数据。

同样,responseEncoding 不相关,因为错误消息提到了 request,而不是 response。此外,该示例令人困惑,因为它包含同一个 responseEncoding 键的两个值。