php - 发送原始字节缓冲区后

标签 php c++ curl libcurl

我想弄清楚如何使用 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“阅读器”函数需要提供二进制数据,请在 curl 查找文档以获取更多信息。

然后您可以通过这种方式获得在 PHP 中发送的二进制数据:

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

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

fclose($fPut);

关于php - 发送原始字节缓冲区后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698468/

相关文章:

PHPUnit 和 Git : How to test with unreadable file?

php - 在一组其他值中查找一个值

c++ - 向 char* 添加文本

r - 如何在 RCurl 中使用 cookie?

php - 创建新的 symfony 项目时出错

php - 合并两个数组以使整数值尽可能接近相等

php - `print_r($mysqli,1)` 更改为 `$mysqli->affected_rows `

c++ - 标准头文件对全局命名空间的污染

c++ - 线程池中的 boost::function 释放段错误

curl - 如何使用命令行从私有(private) Bitbucket 存储库下载单个原始文件?