2017-11-28 1 views
0

외부 SOAP API (Interworx API - http://docs.interworx.com/interworx/api/index-Using-the-API.php#toc-Chapter-2)를 사용 중이며 SOAP 호출이 성공적으로 실행되면 'ERR_NO_RESPONSE'또는 'Unable to connect' 내 브라우저 (Chrome 또는 Safari 또는 Firefox)의 메시지 SOAP 명령이 성공하지 못하면 페이지가 제대로 작동하고 $ result에 적절한 반환 배열이 수신됩니다.PHP SoapClient 호출은 브라우저에서 ERR_NO_RESPONSE를 생성 한 다음 페이지를 다시로드합니다.

호출은 다음과 같습니다

$client = new SoapClient($interworx_soap_url); 
$result = $client->route($api_key, $api_controller, $action, $input); 

$ 클라이언트 -> 경로() 명령을 내 컨트롤 패널에서 새 도메인 포인터를 만드는 것입니다.

흥미롭게도 API 호출이 항상 작동하지만 어쨌든 코드 실행이 중단됩니다. 이 줄 주위에 ob_start() 및 ob_clean()을 추가하려고 시도했지만 아무런 차이가 없습니다.

내 명령 $ client-> route()가 성공하면 (새 도메인 포인터를 만듭니다) 문제가 발생하지만 (브라우저의 ERR_NO_RESPONSE) 명령이 성공적이지 않은 경우 (도메인 포인터가 이미있는 경우와 같이)) 잘 작동합니다 (오류 메시지가있는 상태 배열 반환).

문제를 해결하거나 격리하는 데 도움이되는 모든 도움을 주시면 감사하겠습니다. 덧붙여 말하면,이 문제는 PHP 또는 서버 Apache 오류 로그에 메시지를 생성하지 않습니다. 감사!

+0

SoapUI를 사용하여 전화를 걸었습니까? 뭔가 잘못된 일이 있는지보십시오. 결국, 호출이 PHP 출력을 간섭하지 않는다. –

+0

예, 도메인 포인터를 나열하는 것을 포함하여 많은 다른 명령을 성공적으로 수행 할 수 있습니다. –

+0

여기에서 생략 한 다른 코드가 있습니까? 그렇지 않으면 PHP 버전은 무엇입니까? –

답변

0

그래, 내 문제를 발견하고 정확히 코딩 문제가 아니었다. $ client-> route() 명령을 호출하고 새로운 포인터 도메인을 만들었을 때 API 이 아파치을 다시 시작하여 새 서버 별칭을 활성화했습니다. 이 시점에서 정확히 내 스크립트를 죽이고있었습니다! Interworx에는 재시작을 "우아함"으로 강제 할 수있는 설정이 있으며 이는 내 문제를 해결합니다. 코드가 모두 좋았습니다. 감사합니다

관련 문제