问题描述
我正在尝试将音频流传输到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
以/
开头。