0

我正在尝试使用猫鼬 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 文件发送到服务器之前,我需要对它进行任何对话吗?

4

2 回答 2

0

我认为您应该尝试分块编码。即您不应该在 中发送原始数据mg_connect_http,而是使用mg_send_http_chunkand 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 回答