2012-03-16 8 views
1

私はMagentoのSOAPを使用しようが、私はエラーを取得 "にSoapFault例外:[HTTP]未知のContent-encodingを"
私が使用するコードは、このです:MagentoのSOAP "未知のContent-エンコード"

function init_connector() { 
global $mage_url,$mage_user, $mage_api_key, $sessionId, $proxy; 

try { 

$proxy = new SoapClient($mage_url ."/api/?wsdl"); //calling this function with no errors 
// Login to Magento 
$sessionId = $proxy->login($mage_user, $mage_api_key); //this call trigers the exception 
return 1; 
} catch(SoapFault $fault) { 
    logError($fault); 
    return 0; 
} 
} 

オブジェクト$ proxyを作成するときにエラーは発生しませんが、$ sessionId = $ proxy-> login(...)を呼び出すと上記の例外が発生します。

他のマゼンタのインストールでも同じコードが正常に動作します。

提案はありますか?
ありがとう...

+0

あなたのサーバーに関連している可能性があります。 apache deflate、header extensionsを使用しましたか? (または、おそらくあなたはApacheを使用していませんでした) –

+0

私はそれがサーバー関連のものだとも信じていますが、どこから見ていいのか分かりません。 – karpa

答えて

0

どうもありがとうOGUZ。 私は今2日間苦労しており、最終的に解決策を見つけました。私はなぜこのようなサーバが(私は本当に知りたいですが)応答するのか分かりませんが、これでSoapClientを作成すれば動作します。その問題を持っていなかったgzip圧縮を使用して別のサーバー上で(オプションを使用せずに '圧縮' => SOAP_COMPRESSION_ACCEPT)のコードをテスト

$proxy = new SoapClient($mage_url, array('compression' => SOAP_COMPRESSION_ACCEPT)); 

..

1

また、これを試してみてください。

$proxy = new SoapClient($site_path.'api/soap/?wsdl=1'); 
+0

これは役に立たなかったでしょう..このヘルプがeclipseデバッガ私はこの応答を得る。 $ http_response_header \t配列[8] \t (列15)HTTP/1.1 200 OK \t (列35)日付:金、2012年3月16日15時10分48秒GMT \t (列14)サーバー:Apacheの\t (列22)**コンテンツエンコード:なし** \t (列20)のContent-Length:9223 \t (文字列: 16)Vary:User-Agent \t (文字列:17)接続:閉じる\t (string:37)Content-Type:text/xml; charset = UTF-8 ##申し訳ありませんが、コメント内に書式を設定することはできません.. ## – karpa

+0

check apache mod_deflate、mod_header extensions。有効になっている場合は、一時的に無効にしてplsを再試行してください。 –

+0

また、php.ini 'output_handler = ob_gzhandler'をチェックしてください。この行が有効になっている場合は一時的に無効にしてください。 PS:共有ホスティングプロバイダにいる場合、あなたは '.htaccess'によって設定することができます –

0

たぶん、このヘルプ誰か:

$mode = array (
     'soap_version' => 'SOAP_1_1', // use soap 1.1 client 
     'keep_alive' => true, 
     'trace'   => 1, 
     'encoding'  =>'UTF-8', 
     'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE, 
     'exceptions' => true, 
     'cache_wsdl' => WSDL_CACHE_NONE, 
     'stream_context' => stream_context_create ( 
      array (
       'http' => array('header' => 'Content-Encoding: gzip'), 
      ) 
     ) 
    ); 

$client = new SoapClient ($wsdl, $mode);

+0

これがどのように問題を解決するかについて詳しく説明できますか?ありがとう。 – DanM7

関連する問題