2016-01-09 113 views
1

我想弄清楚如何使用curl easy,一个BYTE[100]缓冲区,可能包含0x00字节的C++发送到PHP字段的POST字段。 我也需要使用HTML压缩技术。发送原始字节缓冲区后

在此之前,我对每个字节都做了sprintf("%02X"),所以我可以用字母发送它们,但现在为了提高API响应时间,我需要尽量减少网络流量。

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

+0

和后场可以接受0×00字节?它会终止字符串,请仔细阅读我的问题。 – NoobyLearner

回答

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“读者”功能需要养活的二进制数据,仰望卷曲的文档获取更多信息。

,你会得到你的PHP这种方式发送的二进制数据:

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

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

fclose($fPut);