1
我使用以下代碼來請求來自一個IdentityServer,它使用OpenID協議令牌連接至OpenID:使用PHP捲曲顯示錯誤
$curl = curl_init('https://remoteserver.com/connect/token');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$code = $_GET['code']; // The code from the previous request
$redirect_uri = 'http://mycalldomain.com/test.php';
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
'redirect_uri' => $redirect_uri,
'grant_type' => 'authorization_code'
));
curl_setopt($curl, CURLOPT_USERPWD,
"MYCLIENTID" . ":" .
"MYCLIENTSECRET");
$auth = curl_exec($curl);
print '$auth = ';print_r($auth); // to see the error
$secret = json_decode($auth);
$access_key = $secret->access_token;
是outputing以下錯誤:
$auth = {"ErrorMessage":"Unsupported Mediatype"}
有人可以指導這個嗎?
我已經設置了,但仍返回相同的錯誤。從進一步的調查,它似乎不應該在json中 - http://openid.net/specs/openid-connect-core-1_0.html#TokenRequest –
你能幫我重新格式化我的代碼,不知道如何我可以發送以下類型:應用程序/ x-www-form-urlencoded –
我編輯答案也有一個例子。通常,在執行POST時,應始終確保不僅僅是預期的Content-Type,而且還要確保POST數據的格式。許多庫將具有默認值,因此代碼中的格式可能不明顯如果沒有明確設置。 – Ilmari