我正在尝试使用猫鼬 http 服务器发送 Wav 文件。基本上,我正在形成 POST 请求并使用 struct mg_connection *mg_connect_http(struct mg_mgr *mgr, mg_event_handler_t ev_handler, const char *url, const char *extra_headers, const char *post_data) API 发送,该 API 期望 const char *post_data 在可见 ascii字符串格式,但我的 wav 文件是原始数据,因为原始 wav 文件中有 0x00(null) 个字符,所以不会发送文件的全部内容。在将 wav 文件发送到服务器之前,我需要对它进行任何对话吗?
问问题
828 次
2 回答
0
我认为您应该尝试分块编码。即您不应该在 中发送原始数据mg_connect_http
,而是使用mg_send_http_chunk
and Co。
于 2016-11-09T14:45:04.080 回答
0
您可能会尝试的另一个解决方案是:
c = mg_connect();
mg_set_protocol_http_websocket(c);
mg_printf(c, "POST /my_uri HTTP/1.0\r\n");
mg_printf(c, "Content-Length: %lu\r\n\r\n", (unsigned long) post_len);
mg_send(c, post, post_len);
请注意,这将在发送之前将整个 WAV 文件缓冲在内存中。
于 2016-11-19T08:51:34.973 回答