1

SOAP API を使用して他のサーバーからコンテンツを取得し、結果を自分のデータベースに挿入するためのコア php で cronjob スクリプトを作成する数日前。

以前は正常に動作し、約 10000 レコードを取得してデータベースに挿入していました。

しかし、スクリプトが正しく動作しません。そのため、ブラウザ(Mozilla)でスクリプトを実行すると、このエラーが発生します。

コンテンツ エンコード エラー:
表示しようとしているページは、無効またはサポートされていない形式の圧縮を使用しているため、表示できません。Web サイトの所有者に連絡して、この問題を知らせてください。

ページのエンコーディングといくつかの 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 店舗のループでメソッドを使用しています。解決策を提案してください。

4

1 に答える 1

0

基本的に、コンテンツエンコーディングエラーは、応答が何らかの方法で破損しているため、レンダリングできなかったことを意味します。1つのブラウザで問題が発生した可能性がありますが、curlで問題が発生しているため、次のようになります。

HTTP /1.0500内部サーバーエラー

これはブラウザの問題ではなく、サーバー側で問題が発生したことを意味します。これをさらに診断するには、サーバーログ、特にエラーログが必要です。サーバー側で何かが起こったが、提示された情報はそれが何であるかについてさえ示唆していない。

于 2012-10-04T17:47:14.723 に答える