SOAP 웹 서비스 인터페이스
PHP에서는 php.ini 파일에서 php_soap.dll 확장자를 활성화한 후 SOAP를 지원할 수 있습니다.
비누 확장 라이브러리에는 크게 세 가지 유형의 객체가 있습니다.
1. SoapServer
는 PHP 서버측 페이지 생성 시 호출할 수 있는 함수를 정의하고 응답 데이터를 반환하는 데 사용됩니다. SoapServer 객체를 생성하기 위한 구문 형식은 다음과 같습니다.
$soap = new SoapServer($wsdl, $array);
그 중 $wsdl은 shoep에서 사용하는 wsdl 파일이고, wsdl은 표준 형식입니다. Web Service를 설명하기 위한 것입니다. $wsdl이 null로 설정되어 있으면 wsdl 모드를 사용하지 않는다는 의미입니다. $array는 SoapServer의 속성정보로 배열입니다.
SoapServer 객체의 addFunction 메소드는 클라이언트가 어떤 함수를 호출할 수 있는지 선언하는 데 사용됩니다. 구문 형식은 다음과 같습니다.
$soap->addFunction($function_name);
그 중, $soap은 SoapServer 개체입니다. $function_name은 호출해야 하는 함수의 이름입니다.
SoapServer 객체의 핸들 메소드는 사용자 입력을 처리하고 해당 함수를 호출하는 데 사용되며, 최종적으로 처리 결과를 클라이언트에 반환합니다. 구문 형식은 다음과 같습니다.
$soap->handle([$soap_request]);
이 중 $soap은 SoapServer 객체이고 $soap_request는 사용자의 요청 정보를 나타내는 데 사용되는 선택적 매개 변수입니다. . $soap_request를 지정하지 않으면 서버가 사용자의 모든 요청을 수락한다는 의미입니다.
2. SoapCliet
은 원격 서버의 SoapServer 페이지를 호출하고 해당 기능에 대한 호출을 구현하는 데 사용됩니다. SoapClient 객체를 생성하기 위한 구문 형식은 다음과 같습니다.
$soap = new SoapClient($wsdl,$array);
이 중 $wsdl 및 $array 매개변수는 SoapServer와 동일합니다.
SoapClient 객체를 생성한 후 서버 페이지에서 함수를 호출하는 것은 SoapClient 메서드를 호출하는 것과 동일합니다. 생성 구문은 다음과 같습니다.
$soap->user_function($params);
그 중 , $soap은 SoapClient 개체이고 user_function은 서버 측에서 호출되는 함수이며 $params는 함수에 전달되는 매개 변수입니다.
3. SoapFault
SoapFault는 비누 접근 중 발생할 수 있는 오류를 생성하는 데 사용됩니다. SoapFault 객체를 생성하기 위한 구문 형식은 다음과 같습니다.
$fault = new SoapFault($faultcode,$faultstring);
이 중 $faultcode는 사용자 정의 오류 코드이고, $faultstring은 사용자 -정의된 오류 메시지. SoapFault 객체는 서버 측 페이지에 오류가 발생하거나 사용자가 SoapFault 객체를 생성하면 자동으로 생성됩니다. Soap 액세스 중에 발생하는 오류의 경우 클라이언트는 SoapFalut 개체를 캡처하여 해당 오류 정보를 얻을 수 있습니다.
클라이언트에서 SoapFault 개체를 캡처한 후 다음 코드를 통해 오류 코드 및 오류 정보를 얻을 수 있습니다.
$fault->faultcode;//Error code
$fault->faultstring; //오류 정보
그 중 $fault는 앞서 생성한 SoapFault 객체입니다.
SoapServer와 SoapClient는 모두 두 개의 매개변수를 받습니다. 두 번째 매개변수는 여러 옵션을 지원하는 Option입니다.
uri: 네임스페이스, 클라이언트와 서버에 필요
위치. 클라이언트가 서버 프로그램의 액세스 주소를 지정하는 데 사용되며, 이는 이 예에서 두 번째 코드의 프로그램 주소입니다.
trace: 클라이언트에서 사용됩니다. true인 경우 디버깅을 위해 서버와 클라이언트 간의 통신 내용을 얻을 수 있습니다.
Soapserver.php
Java 코드
//먼저 SoapServer 객체 인스턴스를 생성한 후 원하는 기능을 등록하세요. 노출,
//승인된 비누 요청을 처리하는 데 마지막 핸들()이 사용됩니다.
error_reporting(7) //공식적으로 출시되면 0으로 설정합니다.
date_default_timezone_set (' PRC'); //시간대 설정
/* 클라이언트 호출을 위한 여러 기능 */
function reverse($str)
{
$retval = '';
if (strlen($str) < 1) {
return new SoapFault ('클라이언트', '', '잘못된 문자열'); >
} for ($i = 1; $i <= strlen($str); $i++) { $retval .= $str [(strlen($ str) - $i)]; } return $retval; function add2numbers($num1, $num2) { if (trim($num1) != intval($num1)) {새 SoapFault('클라이언트', '', '첫 번째 숫자가 유효하지 않음')를 반환합니다.
}
if (trim($num2) != intval($num2)) {
새 SoapFault 반환('클라이언트','','두 번째 숫자 유효하지 않습니다');
}
반품($num1 + $num2);
}
함수 gettime()
{
$time = date('Y-m-d H:i:s', 시간());
$time을 반환합니다.
}
$soap = new SoapServer (null, array('uri' => "httr://test-rui"));
$soap->addFunction('reverse');
$soap->addFunction('add2numbers');
$soap->addFunction('gettime');
$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->handle();
?>
SoapClient.php
Java 代码
error_reporting(7);
시도해 보세요 {
$client = 새 SoapClient (null, array('location' => "http://www.yiigo.com/Soapserver.php", 'uri' = > 'http://test-uri'));
$str = "이 문자열은 반전됩니다.";
$reversed = $client->reverse($str);
echo는 "'$str'을 반대로 하면 '$reversed'가 됩니다.";
$n1 = 20;
$n2 = 33;
$sum = $client->add2numbers($n1, $n2);
에코 "
";
에코 "$n1 + $n2를 시도하면 $sum을 얻게 됩니다.";
에코 "
";
echo "리모예 시스템 시간은 다음과 같습니다." . $클라이언트->gettime();
} catch (SoapFault $fault) {
에코 "Fault! code:" . $fault->faultcode . " 끈:" . $fault->faultstring;
}
?>
'This string will be reversed'를 반대로 하면 'desrever eb lliw gnirts sihT'를 얻게 됩니다.
20 + 33을 시도하면 53을 얻게 됩니다.
remoye 시스템 시간은 다음과 같습니다. 2012-05-28 16:14:29
통로SoapHeader实现身份认证
Java 代码
class 서버
{
공용 함수 인증($a)
{
if ($a != '123456789') {
새 SoapFault('서버', '사용户身份认证信息错误')를 발생시킵니다.
}
}
공개 함수 say()
{
return '안녕'; } } $srv = new SoapServer(null, array('uri' =>'http://localhost/namespace ')); $srv->setClass('서버'); $srv->handle(); 客户端Java 代码 $cli = new SoapClient(null,array('uri' => 'http://localhost/namespace/',
'위치' => 'http://localhost/server.php',
'trace' => true));
//auth는 서버에서 처리되는 함수입니다. 12345689는 매개변수입니다.
$h = new SoapHeader(' http://localhost/namespace/',
'auth', '123456789', false, SOAP_ACTOR_NEXT)
$cli->__setSoapHeaders(array($h) );
try {
echo $cli->say()
} catch(예외 $e) {
echo $e- >getMessage ();
}
server.php의 서버 클래스에는 헤더 이름에 해당하는 "auth" 메소드가 있습니다. auth 메소드는 SoapHeader의 데이터입니다. SoapServer는 이 요청을 받으면 먼저 auth 메소드를 호출하고 "123456789"를 메소드에 매개변수로 전달합니다. mustUnderstand 매개변수가 false인 경우 auth 메서드가 없어도 say 메서드가 호출되지만, true인 경우 auth 메서드가 없으면 Soapfault를 반환하여 헤더가 처리되지 않았음을 알립니다. . 행위자 매개변수는 헤더를 처리해야 하는 역할을 지정합니다. 여기서는 이를 완전히 이해하지 못하므로 말하기가 어렵습니다.
Java 코드
$file = $this->getSoapWSDL();
$client = new SoapClient($file);//url을 통해 액세스할 수 있습니다. browser ,
$param = array('userID' => 'test', 'merchantID' => 'test');
$returnSt = $를 호출하여 해결할 수 없습니다. client-> ;checkUser($param);
print_r($returnSt->checkUserResult)
공용 함수 getSoapWSDL()
{ // 주기적으로 URL 파일을 로컬에 저장합니다.
$file = Mage::getBaseDir() . DS 'shengda' . if (time() > filemtime($file) + 7 * 86400) {
$url = "http://jf.sdo.com/ExchangeScore/ExchangeService.asmx?WSDL"
include_once(BP . DS . "lib/Snoopy.class.php")
$snoopy = 새 스누피
$snoopy->fetch($url); / 모든 콘텐츠 가져오기
$snoopy->read_timeout = 4;
$wsdl = $snoopy->results
if ($snoopy-& gt;status; == '200' && !$snoopy->timed_out) {
if (!is_dir(dirname($file))) {
mkdir(dirname($file)); 🎜>
$파일 켜기 }
핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











웹 개발 분야에서 웹 서비스는 다양한 애플리케이션이 서로 통신하여 보다 복잡하고 강력한 시스템을 구축할 수 있도록 하는 매우 중요한 기술입니다. 이 기사에서는 PHP와 SOAP를 사용하여 웹 서비스 호출 및 개발을 구현하는 방법을 심층적으로 살펴보겠습니다. SOAP(SimpleObjectAccessProtocol)는 서로 다른 애플리케이션 간의 정보 교환에 사용되는 XML 기반 프로토콜입니다. SOAP는 중요한 웹 서비스 표준입니다.

PHP 및 SOAP: 데이터의 동기 및 비동기 처리 구현 방법 소개: 최신 웹 애플리케이션에서는 데이터의 동기 및 비동기 처리가 점점 더 중요해지고 있습니다. 동기 처리는 한 번에 하나의 요청만 처리하고 다음 요청을 처리하기 전에 요청이 완료될 때까지 기다리는 것을 의미하며, 비동기 처리는 특정 요청이 완료될 때까지 기다리지 않고 동시에 여러 요청을 처리하는 것을 의미합니다. 이 기사에서는 PHP와 SOAP를 사용하여 데이터의 동기 및 비동기 처리를 수행하는 방법을 소개합니다. 1. SOAP SOAP 소개(SimpleObject)

PHP 및 SOAP: 원격 프로시저 호출(RPC) 구현 방법 소개: 최근 몇 년 동안 분산 시스템이 등장하면서 원격 프로시저 호출(RPC)이 웹 개발에 널리 채택되었습니다. 이 기사에서는 PHP와 SOAP를 사용하여 RPC를 구현하는 방법을 소개하고 코드 예제를 통해 사용법을 보여줍니다. 1. 원격 프로시저 호출(RPC)이란 무엇입니까? 원격 프로시저 호출(RemoteProcedureCall, RPC)은 통신입니다.

인터넷 기술이 지속적으로 발전함에 따라 데이터와 비즈니스의 상호 작용을 실현하기 위해 점점 더 많은 기업 수준 애플리케이션이 다른 애플리케이션에 대한 인터페이스를 제공해야 합니다. 이 경우 데이터를 전송하고 데이터 무결성과 보안을 보장할 수 있는 안정적인 프로토콜이 필요합니다. SOAP(Simple Object Access Protocol)는 웹 환경에서 애플리케이션 간의 통신을 구현하는 데 사용할 수 있는 XML 기반 프로토콜입니다. 인기 있는 웹 프로그래밍 언어인 PHP

Python을 사용하여 SOAP 메시지 구문 분석 SOAP(Simple Object Access Protocol)는 네트워크의 여러 애플리케이션 간에 통신하는 데 사용되는 XML 기반 RPC(원격 프로시저 호출) 프로토콜입니다. Python은 SOAP 메시지를 처리하기 위한 많은 라이브러리와 도구를 제공하며, 그 중 가장 일반적으로 사용되는 것은 suds 라이브러리입니다. suds는 SOAP 메시지를 구문 분석하고 생성하는 데 사용할 수 있는 Python용 SOAP 클라이언트 라이브러리입니다. 그것은 간단하고

PHP와 SOAP를 사용하여 웹 서비스를 배포 및 게시하는 방법 소개: 오늘날의 인터넷 시대에 웹 서비스의 배포 및 게시는 매우 중요한 주제가 되었습니다. PHP는 널리 사용되는 서버 측 프로그래밍 언어인 반면 SOAP(Simple Object Access Protocol)는 웹 서비스 간 통신에 사용되는 XML 프로토콜입니다. 이 기사에서는 PHP 및 SOAP를 사용하여 웹 서비스를 배포 및 게시하는 방법을 소개하고 몇 가지 코드 예제를 제공합니다.

PHP 및 SOAP를 사용하여 데이터를 압축 및 압축 해제하는 방법 소개: 현대 인터넷 응용 프로그램에서 데이터 전송은 매우 일반적인 작업입니다. 그러나 인터넷 응용 프로그램의 지속적인 개발로 인해 데이터 양이 증가하고 전송 속도에 대한 요구 사항이 합리적으로 증가하고 있습니다. 데이터 압축 및 압축 해제 기술의 사용은 매우 중요한 주제가 되었습니다. PHP 개발에서는 SOAP(SimpleObjectAccessProtocol) 프로토콜을 사용하여 데이터 압축 및 압축 해제를 달성할 수 있습니다. 이 기사에서는 다음 방법을 보여줍니다.

PHP 및 SOAP: 데이터 체크섬 수정 처리 방법 소개: 인터넷 시대에 데이터 상호 작용 및 처리가 점점 더 중요해지고 있습니다. 웹 애플리케이션에서는 일반적으로 데이터 상호 작용을 위해 SOAP(Simple Object Access Protocol)를 사용합니다. 데이터 상호작용 과정에서는 데이터 검증과 수정이 특히 중요합니다. 이 기사에서는 PHP와 SOAP를 사용하여 데이터 상호 작용에서 데이터 확인 및 수정을 수행하는 방법을 소개하고 자세한 코드 예제를 제공합니다. 1. 데이터 검증의 중요성 데이터 검증은 데이터의 정확성과 완전성을 보장하는 것입니다.
