如何从 PHP 执行 cURL URL

问题描述 投票:0回答:3

我正在尝试通过 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 代码有什么问题?

php curl
3个回答
3
投票

检查 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);

提供正确的凭据以便身份验证成功


1
投票

使用文档 - 这应该有效。注意正确的 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);

1
投票

@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 初始化的

© www.soinside.com 2019 - 2024. All rights reserved.