幾天之前,我在覈心php中創建了一個cronjob腳本,用於從其他服務器使用soap API獲取內容並將結果插入到我自己的數據庫中。cj.com API調用中的內容編碼錯誤
此前它工作正常,並獲取大約10000條記錄並將它們插入到數據庫中。
但現在腳本不能正常工作。所以我在瀏覽器(Mozila)中執行腳本,它給了我這個錯誤。
Content Encoding Error:
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression. Please contact the web site owners to inform them of this problem.
我改變了頁面編碼和很少ini相關的設置,但它仍然顯示相同的錯誤。
我也改變了我的代碼,並使用下面的代碼,但問題仍然存在。
class API
{
protected $developerKey;
protected $websiteId;
// Intialise all the values
public function __construct(){
$this->developerKey = 'XXXXXXX';
$this->websiteId = "yyyyyy";
}
public function apiCall($storeId,$start)
{
try
{
$url = "https://linksearch.api.cj.com/v2/link-search?";
$url .="website-id=".$this->websiteId;
$url .="&advertiser-ids=".$storeId;
$url .="&link-type=".urlencode('Text Link');
$url .="&page-number=".$start;
$url .="&records-per-page=100";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: '.$this->developerKey));
$curl_results = curl_exec($ch);
$xml = simplexml_load_string($curl_results);
$json = json_encode($xml);
$arrres = json_decode($json,TRUE);
return $arrres;
}
catch (Exception $e)
{
return $e->getMessage();
}
}
}
我使用apiCall
方法在一個循環中的約600家門店。 請提出任何解決方案。
這意味着響應基本上以某種方式損壞。請檢查一下其他瀏覽器,如果你得到相同的錯誤,用curl(帶頭文件)獲取響應並提供該信息。另外,請檢查服務器端是否有錯誤,如果可能,請嘗試在服務器本身的命令行中執行相同的操作。 – eis
這個問題如何得到任何upvote?請問一個真正的問題。 – Nin
@eis對不起,遲到的回覆。根據您的評論,我更改了我的代碼並使用curl(REST API)獲取數據,但同樣的問題仍然存在。另外我在其他瀏覽器上執行了我的腳本,他們沒有顯示任何錯誤,只有mozila顯示「content-encoding-error」。我已編輯我的問題,請看看。 –