【发布时间】:2017-12-27 06:25:26
【问题描述】:
我对 PHP cURL 有一些问题。我尝试使用 PHP cURL 从 API 获取数据。这是我在 PHP 中的 cURL 代码:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.example.com/dos/AW/API",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"Filter\" : {\"IsActive\" : \"True\",\"OutputSelector\" : \"Name\"}}",
CURLOPT_HTTPHEADER => array(
"API_ACTION: GetItem",
"API_KEY: MHlIARzQqxVpOg2dUxH4q9w7bx3pOL6K",
"Accept: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
使用该代码,我可以获得响应,但响应包含一些错误。我还尝试使用POSTMAN 进行检查,API 工作正常,因为我得到了相同数据的成功响应。我的问题是:“我的cURL 代码有什么问题可以解释为什么我在使用cURL 时出现错误并且我在POSTMAN 中得到了成功响应”?
如果有人可以帮助我,我将不胜感激。 非常感谢。
【问题讨论】:
-
请参阅stackoverflow.com/questions/13596799/… 并检查您的 CURLOPT_POSTFIELDS 是否为 field1=value&field2=value2 等字符串。然后我认为您缺少 curl_setopt($ch,CURLOPT_POST, 1) 来进行 POST。
-
您收到什么响应代码?还是什么错误?
-
@BenRoob 也许你可以举一些例子?
-
@BartoszKowalczyk 我刚刚收到错误消息作为回应
-
@Antonio 请告诉我们哪个错误消息;)