2016-05-19 9 views
0

クライアントがWSDLをローカルで解決できないため動作しないSOAPクライアントが動作していません。これをデバッグするために私は以下のスクリプトを作成しました。file_get_contentsとcURLは同じスクリプトで全く異なるコンテンツを返します

curl呼び出しに正しい応答があり、file_get_contentsの応答がまったく異なります。最初は私はこれがDNSの問題だと思っていましたが、カールコールもその場合に間違った応答を返さなければなりません。

根本的な原因は何でしょうか?

<?php 
function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 
var_dump(get_data("http://example.com")); // right response 
var_dump(file_get_contents("http://example.com"); // wrong response 
+1

このケースでは「全く違う」ものを定義することができない場合、これは答えにくいと思うし、いくつかの例が役に立ちます。 –

+0

curl variantは、要求されたURLのブラウザ出力と同じです。 file_get_contents呼び出しは 'このドメインは予約されています'というページを返します –

+0

あなたが使用しているURLは同じです、あなたはそれらを比較して真実などを得ることができます。何も考えていない... –

答えて

0

何とか、Apacheの再起動後に問題が解決されました。問題は何だったのかまだ分かりません。それは確かにDNS TTL(48時間待った)ではありませんでした。

関連する問題