2012-10-11 3 views
1

이전에는 SOAP XML API로 작업 한 적이 없었습니다.SOAP XML API에서 응답을 요청하는 방법은 무엇입니까?

나는 비슷한 질문을 몇 개 읽었지만 제대로 작동하지 않습니다.

여기에 간단한 요청입니다 :

<soap12:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” 
xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap12=”http://www.w3.org/2003/05/ 
soap-envelope”> 
<soap12:Body> 
<CheckDomainAvailability xmlns=”https://live.domainbox.net/”> 
<AuthenticationParameters> 
<Reseller>myreseller</Reseller> 
<Username>myuser</Username> 
<Password>mypassword</Password> 
</AuthenticationParameters> 
<CommandParameters> 
<DomainName>checkadomain.co</DomainName> 
<LaunchPhase>GA</LaunchPhase> 
</CommandParameters> 
</CheckDomainAvailability> 
</soap12:Body> 
</soap12:Envelope> 

내가 그들에게 연락을했지만 그들은 PHP API를 제공하지 않습니다.

PHP로 작성된 SoapClient 클래스를 사용하고 싶습니다.

질문 : 어떻게 요청을 보내고 대답을 인쇄합니까?

+1

는 WSDL을보기 이전 코멘트 .. 내가 제공되지 WSDL이 없다 생각 – MrCode

+0

는 전체 문서는 여기에 사용할 수 있습니다 https://admin.domainbox.net/docs/Domainbox-commands.pdf합니다. WSDL을 검색했는데 그것에 대한 참조가 없습니다. –

답변

7

WSDL이 https://live.domainbox.net/?WSDL에있는 것처럼 보입니다.

다음은 원시 PHP SoapClient를 사용한 예입니다.

$client = new SoapClient('https://live.domainbox.net/?WSDL'); 

// populate the inputs.... 
$params = array(
    'AuthenticationParameters' => array(
     'Reseller' => '', 
     'Username' => '', 
     'Password' => '' 
    ), 
    'CommandParameters' => array(
     'DomainName' => '', 
     'LaunchPhase' => '' 
    ) 
); 

$result = $client->CheckDomainAvailability($params); 

print_r($result); 
+0

WOOOW 어떻게 알았습니까? 나 정말 대단해, ​​MrCode, 정말 고마워! –

+0

Uhoh, 오류가 발생했습니다 : Uncaught SoapFault 예외 : [WSDL] SOAP-ERROR : WSDL 구문 분석 : 'https://live.domainbox.net/?WSDL'에서로드 할 수 없습니다. 외부 엔터티를로드하지 못했습니다. "https : //live.domainbox.net/?WSDL " (내 자격 증명을 반영하도록 설정을 변경 함) –

+0

링크에 견적이 있습니까? 그렇지 않은 경우 서버/네트워크 문제입니다. 서버에 외부 액세스 권한이 없으므로 WSDL에 연결할 수 없습니다. 귀하의 호스트가 도와 드릴 수 있습니다. – MrCode

2

이 작업을하려면 올바른 버전의 비누를 1.2로 변경해야합니다. 또한

$client = new SoapClient('https://live.domainbox.net/?WSDL', array('soap_version' => SOAP_1_2)); 

// populate the inputs.... 
    $params = array(
     'AuthenticationParameters' => array(
      'Reseller' => '', 
      'Username' => '', 
      'Password' => '' 
     ), 
     'CommandParameters' => array(
      'DomainName' => '', 
      'LaunchPhase' => '' 
     ) 
    ); 

$result = $client->CheckDomainAvailability($params); 

print_r($result); 
+0

공유 해 주셔서 감사합니다.) 해피 코딩 –

관련 문제