发送原始字节缓冲区 post
Sending raw byte buffer post
我想知道如何使用 curl easy 在 C++ 中发送一个 BYTE[100]
缓冲区,其中可能包含 0x00
个字节,到 POST 字段到PHP 脚本。
我也需要使用 HTML 压缩技术。
在此之前,我对每个字节都做了 sprintf("%02X")
,这样我就可以用信件发送它们,但现在我需要尽量减少网络流量,以缩短 API 响应时间。
我试过 Google,但到目前为止没有接近我的问题的资源。
即使没有 POST 字段也不能发送吗?
我只需要发送我的射线 BYTE[] 并从我的 PHP 脚本中获取它。
我终于想出了一个PUT解决方案。
curl_easy_setopt(curl, CURLOPT_URL, szURL);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, reader);
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)dwBinarySize);
您的 CURLOPT_READFUNCTION "reader" 函数需要提供二进制数据,请在 curl 查找文档以获取更多信息。
并且您可以通过这种方式获得您在 PHP 中发送的二进制数据:
$fPut = fopen("php://input", "r");
$bInput;
while ($data = fread($fPut, 8192))
$bInput .= $data;
fclose($fPut);
我想知道如何使用 curl easy 在 C++ 中发送一个 BYTE[100]
缓冲区,其中可能包含 0x00
个字节,到 POST 字段到PHP 脚本。
我也需要使用 HTML 压缩技术。
在此之前,我对每个字节都做了 sprintf("%02X")
,这样我就可以用信件发送它们,但现在我需要尽量减少网络流量,以缩短 API 响应时间。
我试过 Google,但到目前为止没有接近我的问题的资源。 即使没有 POST 字段也不能发送吗? 我只需要发送我的射线 BYTE[] 并从我的 PHP 脚本中获取它。
我终于想出了一个PUT解决方案。
curl_easy_setopt(curl, CURLOPT_URL, szURL);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, reader);
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)dwBinarySize);
您的 CURLOPT_READFUNCTION "reader" 函数需要提供二进制数据,请在 curl 查找文档以获取更多信息。
并且您可以通过这种方式获得您在 PHP 中发送的二进制数据:
$fPut = fopen("php://input", "r");
$bInput;
while ($data = fread($fPut, 8192))
$bInput .= $data;
fclose($fPut);