【发布时间】:2020-12-24 14:10:39
【问题描述】:
我有一个问题,我认为这是由我的 HTTP 请求的语法引起的。
我正在尝试将音频流式传输到 wit.ai API 以进行语音识别,但我收到了 connection reset by peer 和 400 Bad request 错误。
这是我启动请求的代码:
void startChunkedRequest(SSLClient client, String server, String endpoint)
{
client.print(String("POST https://") + server + endpoint + " HTTP/1.1\r\n");
client.print(String("Host: ") + server + "\r\n");
client.print("Authorization: Bearer "TOKEN"\r\n");
client.print("Content-Type: audio/raw;encoding=signed-integer;bits=8;rate=50000;endian=little\r\n");
client.print("Transfer-Encoding: chunked\r\n");
client.print("\r\n");
}
这是我发送缓冲区的代码:
void chunkedRequest(SSLClient client, uint8_t *buffer, size_t len)
{
client.print(String(len, HEX).c_str());
client.print("\r\n");
client.write(buffer, len);
client.print("\r\n");
}
只要调用chunkedRequest 函数,就会出现错误。
如果您知道解决方案或可能导致问题的原因,请告诉我。
【问题讨论】:
-
如果您设置了
Transfer-Encoding: chunked,那么您必须正确处理chunked 有效负载。它还有助于首先在您的 PC 上试用您的代码(您可以编写一个测试程序并将代码复制粘贴到其中)。
标签: c++ http esp32 chunked wit-ai