"NuSOAP 시작하기"의 두 판 사이의 차이

70번째 줄: 70번째 줄:


[[분류: NuSOAP]]
[[분류: NuSOAP]]
[[분류: 튜토리얼]]

2014년 12월 28일 (일) 13:06 판

1 개요

NuSOAP 시작하기
NuSOAP 튜토리얼
  • PHP용 SOAP 도구
  • 서버+클라이언트 기능 둘다 들어있음

2 nusoap 설치

  • http://sourceforge.net/projects/nusoap/ 접속
  • [Download]
  • 기다리면 nusoap-0.9.5.zip 파일 자동 다운로드
  • 압축해제
  • 자신의 웹서버의 DOCUMENT_ROOT 아래에 soap 폴더 생성
  • lib 폴더 전체를 서버의 soap 폴더에 업로드

3 server.php

<?php
require_once('/var/www/html/nusoap/lib/nusoap.php');
$server = new nusoap_server;
$server->configureWSDL('Welcome');
$server->register("hello", array('name'=>'xsd:string'), array('return'=>'xsd:string'));
function hello($name) { return "Hello, $name!"; }
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);

4 client.php

server.php와 client.php는 서로 다른 서버에 있는 경우가 많겠지만, 튜토리얼이므로 한 폴더에 두고 테스트해보자.

<?php
require_once '/var/www/html/nusoap/lib/nusoap.php';
$client = new nusoap_client("http://jmnote.com/nusoap/server.php?wsdl", true);
$result = $client->call('hello', array('name'=>'John Smith'));
print_r($result);

5 client_debug.php

client.php와 기능은 같다. 오류메시지를 보여주기 때문에 디버그가 용이하다.

<?php
require_once '/var/www/html/nusoap/lib/nusoap.php';
function xmp($arr) { echo '<xmp>'; print_r($arr); echo '</xmp>'; }
$client = new nusoap_client('http://jmnote.com/nusoap/server.php?wsdl');
$result = $client->call('hello', array('name'=>'John Smith'));
$err = $client->getError();
if($client->fault) {
	echo 'Fault: '; xmp($result);
	return;
}
if($err) {
	echo 'Error: '; xmp($err);
	return;
}
echo 'OK: '; xmp($result);
echo '<h2>Request</h2>'; xmp(str_replace(">",">\n",$client->request));
echo '<h2>Response</h2>'; xmp(str_replace(">",">\n",$client->response));

6 같이 보기

7 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}