c++ - 将音频流式传输到 wit.ai 时 esp32 上的 HTTP 错误
问题描述
我有一个我认为是由我的 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
调用该函数,错误就来了。如果您知道解决方案或可能导致问题的原因,请告诉我。
解决方案
您的POST
线路错误地指定了端点。它不应该包含协议或服务器,只包含路径。试试这个:
client.print(endpoint + " HTTP/1.1\r\n");
并确保它endpoint
以/
.
推荐阅读
- java - 如何使用双打的用户输入关闭while循环
- asp.net-mvc - 两个单选按钮被选中
- javascript - Sequelize 日期比较插入错误的时间
- elasticsearch - Elasticsearch 以字符串形式搜索数字
- git - git merge -no-ff 传输提交历史,但不传输内容
- docker - 这是谷歌云构建错误吗?还是我做错了 Docker?
- angular - 如何使用最新的角度和离子版本创建离子角度启动器应用程序?
- javascript - 使用另一个对象的键从对象数组创建新数组
- javascript - 使用 Http 状态代码验证正确的 URL
- google-cloud-platform - 以编程方式/使用 PHP API 的项目的 Active Cloud Firestore 数据库