簡體   English   中英

file_get_content對於某些網址返回null

[英]file_get_content return null for some url

為什么某些帶有json內容的url在php函數上返回null獲取頁面內容?

我用這些方式:

  • file_get_content
  • 卷曲
  • HTTP_GET

但返回null。 但是當打開帶有瀏覽器json內容的頁面時,在瀏覽器上顯示?? 有人可以幫助我嗎?

    $url = 'https://pardakht.cafebazaar.ir/devapi/v2/api/validate/com.pdgroup.insta/inapp/coin_follow_1/purchases/324234235/?access_token=9IaRpdmQzFppJMabLHbHyzBaQnm8bM';
$result = file_get_content($url);

返回null,但在瀏覽器中顯示

{"error_description": "Access token has expired.", "error": "invalid_credentials"}

它返回以下內容:打開流失敗:HTTP請求失敗! HTTP / 1.1 401未經授權

因此,您必須得到授權。

您可以使用以下代碼片段(由於令牌再次過期,因此我無法測試):

<?php
$access_token = "s9spZax2Xrj5g5bFZMJZShbMrEVjIo"; // use your actual token
$url = "https://pardakht.cafebazaar.ir/devapi/v2/api/validate/com.pdgroup.insta/inapp/coin_follow_1/purchases/324234235/";

// Solution with file_get_contents
// $content = file_get_contents($url . "?access_token=" . $access_token);
// echo $content;

// Solution with CURL
$headers = array(
    "Accept: application/json",
    "Content-Type: application/json",
    "Authorization: Basic " . $access_token
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url); //  . $params - if you need some params
curl_setopt($ch, CURLOPT_POST, false);
// curl_setopt($ch, CURLOPT_USERPWD, $userPwd);

$result = curl_exec($ch);
$ch_error = curl_error($ch);
$info = curl_getinfo($ch);

curl_close($ch);

if ($ch_error) {
    throw new Exception("cURL Error: " . $ch_error);
}

if ($info["http_code"] !== 200) {
    throw new Exception("HTTP/1.1 " . $info["http_code"]);
}

echo $result;

暫無
暫無

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

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