php soap 통신 예제

2019年8月3日

다음으로 메서드 이름과 응답의 경우 메서드의 반환 값을 포함하여 실제 RPC 메시지를 포함하는 필수 soap:Body 요소가 있습니다. soap:오류 요소는 선택 사항입니다. 있는 경우 SOAP 메시지에 대한 오류 메시지 또는 상태 정보를 보유하며 soap:Body의 자식 요소여야 합니다. 여기서 루트 디렉토리phpp_soapclient_example는 기본적으로 /var/www/html/인 웹 서버의 루트 디렉토리에 있습니다. 이것은 일반적인 XML 파일처럼 보일 수 있지만 SOAP 메시지를 만드는 것은 http://www.w3.org/2001/12/soap-envelope 네임 스페이스 비누가있는 루트 요소 봉투입니다. soap:encodingStyle 특성은 파일에 사용되는 데이터 형식을 결정하지만 SOAP 자체에는 기본 인코딩이 없습니다. $soapClient 올바르게 인스턴스되었다고 가정합니다. 코드는 클라이언트를 만드는 것으로 시작합니다. 이 단계는 Visual Studio(또는 SOAP를 기본적으로 지원하는 다른 환경)에서 사용하는 모든 웹 서비스에 대한 일반적인 단계입니다. 동일한 단계의 다른 버전을 보려면 PHP 예제를 확인하십시오. 이제 웹 루트 디렉토리에 두 파일을 모두 사용하면 브라우저에서 클라이언트 스크립트 (내 경우 http://localhost/nusoap/productlistclient.php)를 시작합니다.

위의 예는 특정 회사의 주가를 얻기 위한 SOAP 요청 메시지입니다. 비누 내부:몸 당신은 응용 프로그램에 특정 GetStockPrice 요소를 알 수 있습니다. SOAP 요소가 아니며 이 요청에 대해 호출되는 서버의 함수에서 이름을 지정합니다. StockName은 응용 프로그램에만 적용되며 함수에 대한 인수입니다. $params 방법($params)은 비누 작업의 예일 뿐이며, 비누 서버의 비누 연산에 따라 메소드 이름을 decalre합니다. 다시 한 번 우리는 require_once와 nusoap.php를 포함하고 nusoap_client의 새로운 인스턴스를 만듭니다. 생성자는 새로 만든 SOAP 서버의 위치를 연결합니다. getError() 메서드는 클라이언트가 올바르게 만들어졌는지 확인하고 그렇지 않은 경우 코드에 오류 메시지가 표시됩니다. 인스턴스화 후 서비스와의 통신은 매우 간단합니다. Simple_soap_client_class.php에서 SimpleSoapServer 클래스에 정의된 메서드를 SoapClient 클래스 인스턴스를 통해 호출하기만 하면 됩니다. 앞서 말했듯이, 우리는 다른 곳에서 정의 된 메서드를 호출합니다. PHP SoapClient가 하는 일은 웹 서비스에서 정의한 메서드를 제공하는 것이며, 이를 호출할 때 이미 구현한 SOAP 프로토콜을 통해 서버에서 실행되며 작동 방식에 신경 쓸 필요 없이 실행됩니다.

마법처럼 보입니다, 그렇지 않습니까? 브라우저 http://127.0.0.1/php_soapclient_example/handle_soap_request.php?mode=no_wsdl&action=insert&value=testing_no_wsdl 입력하면 서비스가 제공된 값을 작성하는 no_wsdl/data.txt 파일(아직 없는 경우)을 생성합니다. test_no_wsdl`, 다음 이 인쇄됩니다: NuSOAP을 서버에서 실행하는 것이 더 쉬울 수 없습니다. 그냥 sourceforge.net/projects/nusoap 방문, 다운로드 하 고 귀하의 웹 루트 direoctry에서 패키지의 압축을 해제, 그리고 당신은 완료. 라이브러리를 사용하려면 코드에 nusoap.php 파일을 포함하면 됩니다. 당신은 비누와 PHP를 통해 값을 업데이트하는 방법을 공유 할 수 있습니까? 이 서비스는 모든 데이터를 읽는 방법을 제공하므로 브라우저 http://127.0.0.1/php_soapclient_example/handle_soap_request.php?mode=no_wsdl&action=read 입력하면 다음이 인쇄됩니다: WSDL 모드는 웹이 있는 .wsdl 파일이 필요합니다. 서비스가 정의됩니다.

カテゴリー:未分類