cURL在PHP中使用代码库不能正确执行



所以我在浏览器上做测试时使用了以下代码,它工作得很好:

curl -X POST https://go.test.com/l/926923/2022-05-25/3l5rr
-H "Content-Type: application/x-www-form-urlencoded" 
-d "926923_56554pi_926923_56554=Adam.Sem@test.com"

但是当我把它转换成PHP cURL请求时,它不能正常工作,如下所示:

$data = [
'926923_56554pi_926923_56554' => 'Adam.Sem@test.com',
];
$postvars = http_build_query($data) . "n";
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,'https://go.test.com/l/926923/2022-05-25/3l5rr');
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS, $postvars);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($curl);
error_log(curl_getinfo($result));
error_log(print_r($result, true));
curl_close($curl);

有人知道第一个cURL请求和代码版本可能有什么不同吗?

请使用没有http_build_query功能的curl_setopt($curl,CURLOPT_POSTFIELDS, $postvars);

:

$data = [
'926923_56554pi_926923_56554' => 'Adam.Sem@test.com',
];
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,'https://go.test.com/l/926923/2022-05-25/3l5rr');
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS, $data);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded'
));
$result = curl_exec($curl);
error_log(curl_getinfo($result));
error_log(print_r($result, true));
curl_close($curl);

最新更新