移动到生产服务器后无法正常工作,没有错误,空响应

时间:2017-09-13 19:56:46

标签: php curl

我正在尝试使用PHP cURL的函数与我制作的API进行交互。它在我的开发机器上运行良好:

    function handleErrors(int $errSeverity , string $errMsg, string $errFile, int $errLine) {

$credentials = array(
"grant_type" => "password",
"username" => "user",
"Password" => "pass"
);

$errorObj = array (
"AppID" => 2,
"ErrorSource" => $errFile . " Line, " . $errLine,
"ErrorMessage" => $errMsg
);


$curl = curl_init();
try {
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => API_BASE . API_AUTH_PATH,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => http_build_query($credentials)
));

$resp = curl_exec($curl);
$token = json_decode($resp, true)["access_token"];


curl_setopt_array($curl, array(
    CURLOPT_URL => API_BASE . API_ERROR_PATH,
    CURLOPT_POST => 1,
    CURLINFO_HEADER_OUT => 1,
    CURLOPT_HTTPHEADER => array("Authorization: Bearer $token"),
    CURLOPT_POSTFIELDS => http_build_query($errorObj)
    ));
    $resp = curl_exec($curl);
    $info = curl_getinfo($curl);

} catch (Exception $ex) {

}
finally {
    curl_close($curl);
}

我收到了用于授权的令牌,错误已适当地发布到数据库中。

但是,当我将代码移动到生产服务器(也承载API)时,它已不再有效。我没有得到我的"令牌"回来。

curl_error返回一个空字符串。 $ resp也是empy。检索CURLINFO_HEADER_OUT会输出类似于以下内容的内容:

    POST /dev_api/token HTTP/1.1
Host: xxx
Accept: */*
Content-Length: 66
Content-Type: application/x-www-form-urlencoded

任何建议都将受到赞赏。

编辑:

我尝试检索CURLINFO_RESPONSE_CODE并返回301,但CURLINFO_EFFECTIVE_URL返回了相应的URL(我在浏览器中尝试过)。

0 个答案:

没有答案