【发布时间】:2015-09-30 00:30:36
【问题描述】:
我有什么:
$data = array(
'secret' => "my-app-secret",
'response' => "the-response"
);
$verify = curl_init();
curl_setopt($verify, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");
curl_setopt($verify, CURLOPT_POST, true);
curl_setopt($verify, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($verify, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($verify);
var_dump($response);
我得到了什么:bool(false)(这意味着 curl_exec() 失败)
我的期望:JSON 对象响应
请帮忙。谢谢。
【问题讨论】:
-
我认为 post fields 参数中不需要“http_build_query”。我的工作没有它。
-
@danielson317 google 接受
application/x-www-form-urlencoded格式和multipart/form-data格式,当您在此处添加 http_build_query() 时,它会从第二个(这是给 CURLOPT_POSTFIELDS 一个数组时的默认格式)转换为首先,这里使用 OP 提供的 $data 需要 42 字节的带宽编码为第一个,但 280 字节的数据以multipart/form-data格式编码! (multipart/form-data 对于大型和二进制数据更节省空间,但对于小型数据集,application/x-www-form-urlencoded格式更节省空间。)