0
我的請求需要令牌來發出API請求。下面是他們提供的例如捲曲代碼:如何使用PHP cURL進行API請求?
curl -v -L https://api.artsy.net/api/artists/andy-warhol -H 'X-Xapp-Token:myToken'
我的代碼:
$postdata = array();
$postdata['client_id'] = 'myId';
$postdata['client_secret'] = 'myClient';
$postdata['xapp_token'] = 'myToken';
$cc = curl_init();
curl_setopt($cc,CURLOPT_POST,1);
curl_setopt($cc,CURLOPT_RETURNTRANSFER,1);
curl_setopt($cc,CURLOPT_URL,"https://api.artsy.net/api/artists/andy-warhol");
curl_setopt($cc,CURLOPT_POSTFIELDS,$postdata);
$result = curl_exec($cc);
echo $result;
這將導致一個JSON對象,看起來像:
{
"id": "4d8b92b34eb68a1b2c0003f4",
"slug": "andy-warhol",
"created_at": "2010-08-23T14:15:30+00:00",
"updated_at": "2017-08-25T17:25:51+00:00",
"name": "Andy Warhol",
"sortable_name": "Warhol Andy",
"gender": "male",
"birthday": "1928",
"hometown": "Pittsburgh, Pennsylvania",
"location": "New York, New York",
"nationality": "American",
//...
但是它會導致這個結果:
{:type=>"other_error", :message=>"405 Not Allowed", "X-Frame-Options"=>"DENY", "X-Robots-Tag"=>"noindex", "Allow"=>"OPTIONS, GET, HEAD"}
我對cURL不太熟悉,所以我試圖翻譯他們提供的示例代碼。任何幫助將深表感謝!
是的,它可能期待'GET'調用,並將值作爲查詢字符串。 – ceejayoz
@ceejayoz啊!謝謝你指出!我用curl_setopt($ cc,CURLOPT_CUSTOMREQUEST,'GET')替換了'curl_setopt($ cc,CURLOPT_POST,1);'現在它返回: '{「_links」:{「location」:{「href」 : 「https://api.artsy.net/api/artists/4d8b92b34eb68a1b2c0003f4」}}}'。 不幸的是,我的新問題是,我試圖訪問「href」目標,但不斷收到錯誤:'可恢復的致命錯誤:類stdClass的對象無法轉換爲字符串' '$ result = curl_exec ($ CC); $ myJson = json_decode($ result); echo $ myJson - > _ links;' 對此有何幫助?謝謝! – Sam
@Sam這個新錯誤與您在此處詢問的原始問題並不真正相關,所以最好提出一個關於它的新問題。但是,我會提醒你,它可能會被作爲[如何從PHP中提取JSON數據?]的副本來關閉(https://stackoverflow.com/questions/29308898/how-do-i-extract-data -from-json-with-php),所以我建議先看看。 –