发送原始字节缓冲区后

时间:2016-01-09 20:20:01

标签: php c++ curl libcurl

我试图弄清楚如何使用curl easy,一个BYTE[100]缓冲区(可能包含0x00个字节)向C ++发送一个POST字段到PHP脚本。 我也需要使用HTML压缩技术。

在此之前,我在每个字节上都在sprintf("%02X"),因此我可以用字母发送它们,但现在我需要最小化网络流量以便改善API响应时间。

我在Google上试过,但到目前为止还没有任何资源与我的问题相近。 即使没有POST字段,也不可能发送它吗? 我只需要发送我的光线BYTE []并从我的PHP脚本中获取它。

1 个答案:

答案 0 :(得分:1)

我终于想出了一种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“阅读器”功能需要提供二进制数据,请在curl上查找文档以获取更多信息。

您可以通过以下方式获取以PHP发送的二进制数据:

$fPut = fopen("php://input", "r");

$bInput;
while ($data = fread($fPut, 8192))
    $bInput .= $data;

fclose($fPut);