나는이 SOAP 개념 전체에 익숙하지 않으므로 오류가 발생했을 때 무엇을 찾아야할지 전혀 모른다. 기본적으로 다른 회사의 일부 데이터를 가져 오려고합니다. 그 회사는 나에게 디지털 인증서와 xsd & wsdl 파일을 보내고 내 서버의 IP를 물어 보았습니다. 그래서 그들은 화이트리스트를 작성할 수있었습니다. 앞서 언급했듯이, 나는 그들이 내게 준 파일을 어떻게 처리해야할지 모르겠다. 그래서 나는 그것을 내 서버에 업로드했다. 그리고 나는 인터넷 검색을 시작했다. 그리고 나는 다음 코드를 붙여 넣었다. 의미) :SoapFault를 던지는 PHP의 SoapClient 예외 : [HTTP] Forbidde
$protected_url = "http://www.myurl.com/WSDLFILE.wsdl";
$my_cert_file = "http://www.myurl.com/CERTFILE.pem";
$client = new SoapClient($protected_url, array('local_cert'=> $my_cert_file,'trace'=>1));
$params->Affiliate->AffiliateID = 555;
$params->Address->AddressLine = "123 Main Street";
$params->Contact = 'No';
$result = $client->QueryAddress($params);
그리고 나는 다음과 같은 오류를 얻을
[10-Apr-2013 18:59:46 America/New_York] PHP Fatal error: Uncaught SoapFault exception: [HTTP] Forbidden in /home/mysite/index.php:15
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://secure....', 'http://www....', 1, 0)
#1 /home/mysite/index.php(15): SoapClient->__call('QueryAddress', Array)
#2 /home/mysite/index.php(15): SoapClient->QueryAddress(Object(stdClass))
#3 {main}
thrown in /home/mysite/index.php on line 15
그것은 심지어 내가 지금 어떤 지침 감사, 찾고 있어요 알고 해달라고 때문에 도움말을 검색 할 수 종류의 어려운
편집 : 나는 또한 내가 실제로 성공적인 입술을 얻을 수 있다고 덧붙여 야합니다. cURL을 사용하고 "CURLOPT_SSLCERT"옵션을 설정하여 ponse하지만 SOAP를 사용해야합니다.
같은 것을 끝난 자신의 WSDL URL을 참조했다 [\ [HTTP \]도 403로 알려져 금지] (http://www.checkupdown.com/status/E403. html) –
해결 : 내 문제는 .wsdl 파일을 사용하는 방식이었습니다. SoapCleint를 만들 때 제공 한 파일을 업로드해야한다고 생각했지만 그렇지 않았습니다. 내가 필요한 것은 "https : //....asmx? WSDL"과 같이 끝난 wsdl url을 참조하는 것이 었습니다. – jagers757