簡體   English   中英

錯誤401,使用PHP中的curl訪問REST API

[英]Error 401 using curl in PHP to access REST API

我正在嘗試執行可以在終端中成功執行的curl命令,但在PHP腳本中失敗,並出現以下錯誤:

HTTP / 1.1 401未經授權的訪問控制允許來源:*訪問控制請求方法:*緩存控制:無緩存內容類型:application / json; charset = utf-8日期:2012年2月6日星期一00:38:56 GMT服務器:nginx / 1.0.4 Set-Cookie:_parse_session = XXXXXX; domain = .parse.com; 路徑= /; expires = Sun,2022年2月6日00:38:56 GMT; HttpOnly狀態:401未經授權WWW-Authenticate:基本領域=“ Parse” X運行時:0.002486 X-UA-Compatible:IE = Edge,chrome = 1內容長度:24連接:keep-alive {“ error”:“未經授權“}

這是在終端中成功執行的命令:

curl -H“接受:application / json” -H“ X-Parse-Application-Id:XXXXXXX” -H“ X-Parse-REST-API-Key:XXXXXXXXX” -X GET“ https://api.parse。 com / 1 / classes / XXXXXX“

這是PHP代碼:

$fields = array('Accept: '=>'application/json',
            'X-Parse-Application-Id:' => 'XXXXX',
            'X-Parse-REST-API-Key:' => 'XXXXX');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://api.parse.com/1/classes/XXXX');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_HEADER, $fields);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, 'XXXXXX');

$result = curl_exec($ch);
curl_close($ch);

有趣的是,在終端中執行時,不需要身份驗證信息。

幫助將不勝感激。

謝謝

你的頭字段不應該有:在陣列defnition:

'X-Parse-REST-API-Key:' => 'XXXXX');
                     ^---remove these

這使得:成為字段名稱的一部分,因此您實際上是在發送:

X-Parse-REST-API-Key:: XXXXX
                    ^^---note the doubled colons

標頭是使用CURLOPT_HTTPHEADER設置的,而不是使用CURLOPT_HEADER設置的,該期望值是布爾值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM