发送原始字节缓冲区 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);