2010-08-08 2 views
0

메신저 :소켓 - 번 아웃 WSDL 서비스, 에 연결하려고하지만,이 오류 받고

WSDL 오류 : 얻기 http://api.didww.com/api/?wsdl - HTTP 오류 :

로컬 아무 문제가 없다 헤더를 읽을 소켓이

시간 초과 ,하지만 원격 서버에서 나는이 오류가 발생합니다.

원격 서버 : 리눅스 CentOS는 (FreePBX)

코드 :

$client = new soapclient($site, true); 
$err = $client->getError(); 
if ($err) 
{ 
    echo 'ERROR: ' . $err . '</pre>'; 
} 

$username = 'XXXX'; 
$_key = 'YYYY'; 
$auth_string = sha1($username.$_key); 

$arr = array(); 
$arr[0] = $auth_string; 
$arr[1] = $country_id; 

$result = $client->call('getcities', $arr); 

if ($client->fault) 
{ 
    echo '<pre>'; 
    print_r($result); 
    echo '</pre>'; 
} 
else 
{ 
    $err = $client->getError(); 
    if ($err) 
    { 
     echo 'Error: <pre>' . $err . '</pre>'; 
    } 
} 
echo '<pre>'; 
print_r($result); 
echo '</pre>'; 
+0

방화벽과 관련이 없다고 확신합니까? 다른 방법으로 대상 서버에 연결하려고 시도 했습니까? – Blizz

+0

방화벽을 종료해도 여전히 같은 문제가 발생합니다. – WEBProject

+0

"default_socket_timeout"에 대한 시간 초과 설정은 무엇입니까? –

답변

2

기본 소켓 제한 시간이 INI 설정됩니다 그래서 당신은 단지 그것을 증가하고 그 다음

ini_set('default_socket_timeout', 160); 
작동하는지 볼 수 있습니다

또는 soapclient에 생성자 매개 변수 (옵션)로 전달할 수 있습니다.

$client = new SoapClient($wsdl, array("connection_timeout"=>15)); 
+0

,하지만 문제는로드하는 데 걸리는 시간이 1:30 avg, 이며 로컬 서버 및 다른 서버에서는 몇 밀리 초입니다. 무엇이 문제 일 수 있겠습니까? – WEBProject