我正在尝试通过 cURL 从 PHP 调用 URL,但服务器没有响应。
以下是我的网址:
$url = 'https://id:[email protected]/oauth/token \ -X POST \ -d "grant_type=client_credentials&scope=manage_project:test"';
卷曲代码:
$auth = curl_init($url);
curl_setopt($auth, CURLOPT_POST, true);
curl_setopt($auth, CURLOPT_HEADER, false);
curl_setopt($auth, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($auth);
curl_close($auth);
print_r($response);
当我在终端中执行相同的 URL 从服务器得到响应。 cURL 代码有什么问题?
检查 Curl 片段
$auth = curl_init("https://id:[email protected]/oauth/token");
curl_setopt($auth, CURLOPT_POST, true);
curl_setopt($auth, CURLOPT_HEADER, false);
curl_setopt($auth, CURLOPT_RETURNTRANSFER, true);
curl_setopt($auth,CURLOPT_POST, 2);
curl_setopt($auth,CURLOPT_POSTFIELDS, "grant_type=client_credentials&scope=manage_project:test");
$response = curl_exec($auth);
curl_close($auth);
print_r($response);
提供正确的凭据以便身份验证成功
使用文档 - 这应该有效。注意正确的 URL 并正确传递 post 参数
$auth = curl_init("https://auth.sphere.io/oauth/token");
curl_setopt($auth, CURLOPT_POST, true);
curl_setopt($auth, CURLOPT_HEADER, false);
curl_setopt($auth, CURLOPT_RETURNTRANSFER, true);
curl_setopt($auth,CURLOPT_POST, 2);
curl_setopt($auth,CURLOPT_USERPWD, "id:secret");
curl_setopt($auth,CURLOPT_POSTFIELDS, "grant_type=client_credentials&scope=manage_project:test");
$response = curl_exec($auth);
curl_close($auth);
print_r($response);
@Ed Heal - 修改你的代码应该可以工作
$auth = curl_init("https://auth.sphere.io/oauth/token");
curl_setopt($auth, CURLOPT_POST, true);
curl_setopt($auth, CURLOPT_HEADER, false);
curl_setopt($auth, CURLOPT_RETURNTRANSFER, true);
curl_setopt($auth,CURLOPT_POST, 2);
curl_setopt($auth,CURLOPT_USERPWD, "id:secret");
curl_setopt($auth,CURLOPT_POSTFIELDS, "grant_type=client_credentials&scope=manage_project:test");
$response = curl_exec($auth);
curl_close($auth);
print_r($response);
$ch 是个问题,因为 curl 是用 $auth 初始化的