2012-09-27 37 views
1

幾天之前,我在覈心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家門店。 請提出任何解決方案。

+2

這意味着響應基本上以某種方式損壞。請檢查一下其他瀏覽器,如果你得到相同的錯誤,用curl(帶頭文件)獲取響應並提供該信息。另外,請檢查服務器端是否有錯誤,如果可能,請嘗試在服務器本身的命令行中執行相同的操作。 – eis

+0

這個問題如何得到任何upvote?請問一個真正的問題。 – Nin

+0

@eis對不起,遲到的回覆。根據您的評論,我更改了我的代碼並使用curl(REST API)獲取數據,但同樣的問題仍然存在。另外我在其他瀏覽器上執行了我的腳本,他們沒有顯示任何錯誤,只有mozila顯示「content-encoding-error」。我已編輯我的問題,請看看。 –

回答

0

基本上,內容編碼錯誤意味着響應以某種方式損壞,所以無法呈現。它可以一直在問題只用一個瀏覽器,但因爲你得到這個與捲曲:

HTTP/1.0 500 Internal Server Error

這意味着這是沒有瀏覽器的問題,事情出了錯在服務器端。您需要需要服務器日誌,尤其是錯誤日誌,以進一步對此進行診斷。 有些東西已經發生在服務器端,但所提供的信息甚至沒有暗示將會是什麼。

+0

我檢查了我的服務器錯誤日誌。但它是空的。我認爲'cj.com web services'可能存在一些問題。無論如何感謝您的意見。 –