$client = new SoapClient("catalog.wsdl");검색할 엔트리의 catalogId를 지정한다. SOAP 웹 서비스의 getCatalogEntry 메소드를 호출한다.
$catalogId='catalog1';응답결과를 브라우저에 출력한다.
$response = $client->getCatalogEntry($catalogId);
echo $response;soap-client.php 스크립트가 아래에 나타나 있다.
<?phphttp://localhost/soap-client.php URL을 통해 soap-client.php PHP 스크립트를 호출한다. catalog1 catalogId에 대한 카탈로그 엔트리의 출력결과가 그림 1에 나타나 있다.
$client = new SoapClient("catalog.wsdl");
$catalogId='catalog1';
$response = $client->getCatalogEntry($catalogId);
echo $response;
?>
POST /php/xmlrpc-server.php HTTP/1.0헤더의 /php/xmlrpc-server.php URI는 요청이 전송될 서버 URI를 지정한다. HTTP 버전도 지정되어 있다. User-Agent와 Host도 지정할 필요가 있다. Content-Type은 text/xml이며 Content-Length는 내용의 길이를 지정한다.
User-Agent: Example Client
Host: localhost
Content-Type: text/xml
Content-length: 190
<?xml version="1.0"?>
<methodCall>
<methodName>getCatalog</methodName>
<params>
<param>
<value><string>catalog1
</string></value>
</param>
</params>
</methodCall>
값 타입 | 엘리먼트 |
---|---|
아스키(ASCII) 문자열 | <string> |
부호있는 4바이트 정수(Four-byte signed integer) | <i4> or <int> |
불린(Boolean) | <boolean> |
부호있는 배정도수(double-precision signed)나 부동 소수점 수(floating point number) | <double> |
날짜/시간(Date/time) | <dateTime.iso8601> |
Base-64 인코딩 바이너리(base-64 encoded binary) | <base64> |
<struct>member 엘리먼트에 들어있는value 엘리먼트는 struct를 포함하여 어떠한 param 데이터 타입도 될 수 있다. param 타입으로 <array> 타입도 가능하다. <array> 엘리먼트는 <data> 엘리먼트로 구성되는데, <data> 엘리먼트는 하나 이상의 <value> 엘리먼트들로 이루어져 있다. <array> param 값의 예가 아래에 나타나 있다.
<member>
<name>catalogId</name>
<value><string>catalog1
</string></value>
</member>
<member>
<name>journal</name>
<value><string>IBM developerWorks
</string></value>
</member>
</struct>
<array><data> 엘리먼트안의 <value> 엘리먼트는 struct와 array를 포함하여 어떠한 데이터 타입으로도 구성할 수 있다. XML-RPC 요청에 대한 서버측 응답은 XML 형식을 띤다. 응답의 예가 아래에 나타나 있다.
<data>
<value><i4>1</i4></value>
<value><string>IBM developerWorks
</string></value>
<value>XML</value>
<value><string>Introduction to dom4j
</string></value>
<value><string>Deepak Vohra</string
></value>
</data>
</array>
HTTP/1.1 200 OK오류가 발생하지 않을 경우 서버측 응답은 “200 OK”를 반환한다. Connection 헤더는 응답이 완료된 후의 연결 상태를 기술한다. 비지속적인 연결에 대한 Connection 헤더의 값은 “close”이다. Content-Type은 text/xml이다. 응답 내용은 methodResponse를 루트 엘리먼트로 가지는 XML 형식을 띤다. methodResponse 엘리먼트는 하나의 <params> 엘리먼트로 구성되는데, 하나의 <param> 엘리먼트로 구성되어 있다. <param> 엘리먼트는 하나의 <value> 엘리먼트만을 포함하고 있다.
Connection: close
Content-Length: 190
Content-Type: text/xml
Date:
Server: Example Server
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>Introduction
to SQLXML</string></value>
</param>
</params>
</methodResponse>
HTTP/1.1 200 OK
Connection: close
Content-Length: 190
Content-Type: text/xml
Date:
Server: Example Server
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>4</int
></value>
</member>
<member>
<name>faultString</name>
<value><string>No such Method.
</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
출처 : http://network.hanb.co.kr/view.php?bi_id=1433