목차
Request
Response
Debug
백엔드 개발 PHP 튜토리얼 NuSOAP教程_PHP教程

NuSOAP教程_PHP教程

Jul 13, 2016 pm 05:35 PM
기능 그리고 어떻게 설치하다 공급 지도 시간 문서 ~의 설명하다 이것

这个文档描述了如何取得和安装 NuSOAP,然后提供一些实例来说明 NuSOAP 的功能,这并不是一个全面的 NuSOAP 的介绍,但是希望能够然一些 PHP 开发者可以有一个很好的入门。

NuSOAP 是一组 PHP 类,它让开发者可以创建和使用 SOAP web services。它不需要安装任何的 PHP 扩展。它是在2004年12月3日被开发,当前的版本是 NuSOAP(0.6.7) 。支持 SOAP 1.1 规范,它能够生产 WSDL 1.1 ,当然也可以使用它,同时也支持 rpc/encoded and document/literal service。但是,必须注意 NuSOAP 没有像 .NET 和 Apache Axis 那样提供完全的实现。

Hello, World
我会以 "Hello, World" 为实例做开始,编写基本的 NuSOAP 客户端和服务器端的代码。

我们先从服务器端开始,应为没有服务器端,有客户端也是没有意义的。我们将编写一个带有单个参数并返回一个字符串,名叫 Hello 的 SOAP 方法,希望代码中的注释能够提供有效的说明。

// Pull in the NuSOAP code
require_once(nusoap.php);
// Create the server instance
$server = new soap_server;
// Register the method to expose
$server->register(hello);
// Define the method as a PHP function
function hello($name) {
    return Hello, . $name;
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ;
$server->service($HTTP_RAW_POST_DATA);
?>

以下是客户端的代码,有一些重要的事情需要注意:首先,当创建实例 soapclient 时,需要指定一个 service 的 URL 为参数,在这个实例中,helloworld.php 从 http://localhost/phphack 访问的。当然,你要使用的 services 放在不同的 URL;第二,当调用service 时,第一个参数是 service 的名字,必须要匹配有效的方法名(有的服务器是大小写敏感的)。在这个实例,他必须匹配在 helloworld.php 中已经注册了的方法。最后,第二个参数是一个数组,它将是传递给 SOAP service 方法作为参数。既然 helloworld.php 中的方法 hello 只有一个参数,那么数组就只有一个元素。

// Pull in the NuSOAP code
require_once(nusoap.php);
// Create the client instance
$client = new soapclient(http://localhost/phphack/helloworld.php);
// Call the SOAP method
$result = $client->call(hello, array(name => Scott));
// Display the result
print_r($result);
?>

Debugging
编程时,当有问题出现的时候你都需要调试。NuSOAP 提供了一组工具来帮助你做这个工作。NuSOAP 调试的时候需要查看的信息是发送的请求信息和返回的相应信息。NuSOAP 的客户端类允许你通过它的两个成员来查看这些信息。例如,这里是显示请求和响应的 helloworldclient.php 的修改版。在下一部分我会回顾显示在客户端代码的请求和响应信息。

// Pull in the NuSOAP code
require_once(nusoap.php);
// Create the client instance
$client = new soapclient(http://localhost/phphack/helloworld.php);
// Call the SOAP method
$result = $client->call(hello, array(name => Scott));
// Display the result
print_r($result);
// Display the request and response
echo

Request

;
echo
 . htmlspecialchars($client->request, ENT_QUOTES) . 
로그인 후 복사
;
echo

Response

;
echo
 . htmlspecialchars($client->response, ENT_QUOTES) . 
로그인 후 복사
;
?>

NuSOAP 也提供了一个方法使用它的类就可以通过日志来查看调试信息。加入以下的代码将会显示冗长的调试信息。不幸的是输出的说明必须留给读者。

// Display the debug messages
echo

Debug

;
echo
 . htmlspecialchars($client->debug_str, ENT_QUOTES) . 
로그인 후 복사
;

服务器端能够提供相似的调试信息,有趣的是,这些调试信息是在SOAP 的相应的末尾以 xml 格式显示,因此它可以在客户端中查看到。服务器端的调试看起来像这样:

// Pull in the NuSOAP code
require_once(nusoap.php);
// Enable debugging *before* creating server instance
$debug = 1;
// Create the server instance
$server = new soap_server;
// Register the method to expose
$server->register(hello);
// Define the method as a PHP function
function hello($name) {
    return Hello, . $name;
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ;
$server->service($HTTP_RAW_POST_DATA);
?>

调试的第三个方法不算是真正的调试,它是很好的编程实践。上面的实例在调用 SOAP 的时候没有做错误的检查,更健壮的客户端会像这样:

// Pull in the NuSOAP code
require_once(nusoap.php);
// Create the client instance
$client = new soapclient(http://localhost/phphack/helloworld.php);
// Check for an error
$err = $client->getError();
if ($err) {
    // Display the error
    echo

Constructor error: . $err .

;
    // At this point, you know the call that follows will fail
}
// Call the SOAP method
$result = $client->call(hello, array(name => Scott));
// Check for a fault
if ($client->fault) {
    echo

Fault: ;
    print_r($result);
    echo

;
} else {
    // Check for errors
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo

Error: . $err .

;
    } else {
        // Display the result
        print_r($result);
    }
}
?>

为了测试代码,需要引起错误发生,例如,改变调用的方法名称 hello 为 goodbye。

Request and Response
我在上面的例子中已经展示了显示 SOAP 的请求和响应信息是如此的容易,在这里 hello2client.php 的请求信息:

POST /phphack/helloworld2.php HTTP/1.0
Host: localhost
User-Agent: NuSOAP/0.6.8 (1.81)
Content-Type: text/xml; charset=ISO-8859-1
SOAPAction: ""
Content-Length: 538


  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:si="http://soapinterop.org/xsd">

 
   Scott
 



在 HTTP headers 里,你会看到 SOAPAction 是一个空的字符串,这是它的默认值。你的 service 方法可以设置 SOAPAction 的值,你的客户端代码可以指定 SOAPAction 作为参数来调用方法。

在 XML payload,你可以看到 NuSOAP 使用和Latin-1一样著名的 ISO-8859-1 做为编码,为了指定不同的编码,你可以在客户端 soapclient 的实例设置 soap_defencoding 属性。使用指定的编码来编码参数的数据当然就是程序员的责任。幸运地,在 SOAP 里PHP提供了很多函数来编码和解码最通用的编码数据,如 UTF-8。


另一件事情要注意的是,元素指定要调用的方法,名称为 hello 的元素被放在 http://tempuri.org的域名下,指定真实的域名是最佳的实践,对于很多 services 也是很有必要的。这里展示了一个未来的文档:

SOAP 服务的响应像以下:

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Wed, 03 Nov 2004 21:32:34 GMT
X-Powere

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508345.htmlTechArticle这个文档描述了如何取得和安装 NuSOAP,然后提供一些实例来说明 NuSOAP 的功能,这并不是一个全面的 NuSOAP 的介绍,但是希望能够然一些...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

여름에는 꼭 무지개를 찍어보세요 여름에는 꼭 무지개를 찍어보세요 Jul 21, 2024 pm 05:16 PM

여름에 비가 내린 후에는 아름답고 마법 같은 특별한 날씨 장면인 무지개를 자주 볼 수 있습니다. 이 역시 사진에서 볼 수 있는 보기 드문 장면으로, 매우 포토제닉하다. 무지개가 나타나는 데에는 몇 가지 조건이 있습니다. 첫째, 공기 중에 충분한 물방울이 있고, 둘째, 태양이 낮은 각도로 빛납니다. 따라서 비가 그친 후 오후에 무지개를 보는 것이 가장 쉽습니다. 그러나 무지개의 형성은 날씨, 빛, 기타 조건의 영향을 크게 받기 때문에 일반적으로 짧은 시간 동안만 지속되며, 가장 잘 볼 수 있고 촬영할 수 있는 시간은 더욱 짧습니다. 그러면 무지개를 만났을 때 어떻게 제대로 기록하고 고품질로 사진을 찍을 수 있습니까? 1. 무지개를 찾아보세요. 위에서 언급한 조건 외에도 무지개는 대개 햇빛 방향으로 나타납니다. 즉, 태양이 서쪽에서 동쪽으로 빛날 경우 무지개가 동쪽에서 나타날 확률이 높습니다.

Win7 컴퓨터에 Go 언어를 설치하는 자세한 단계 Win7 컴퓨터에 Go 언어를 설치하는 자세한 단계 Mar 27, 2024 pm 02:00 PM

Win7 컴퓨터에 Go 언어를 설치하는 세부 단계 Go(Golang이라고도 함)는 Google에서 개발한 오픈 소스 프로그래밍 언어로, 간단하고 효율적이며 뛰어난 동시성 성능을 갖추고 있으며 클라우드 서비스, 네트워크 애플리케이션 및 개발에 적합합니다. 백엔드 시스템. Win7 컴퓨터에 Go 언어를 설치하면 언어를 빠르게 시작하고 Go 프로그램 작성을 시작할 수 있습니다. 다음은 Win7 컴퓨터에 Go 언어를 설치하는 단계를 자세히 소개하고 특정 코드 예제를 첨부합니다. 1단계: Go 언어 설치 패키지를 다운로드하고 Go 공식 웹사이트를 방문하세요.

PHP 튜토리얼: int 유형을 문자열로 변환하는 방법 PHP 튜토리얼: int 유형을 문자열로 변환하는 방법 Mar 27, 2024 pm 06:03 PM

PHP 튜토리얼: Int 유형을 문자열로 변환하는 방법 PHP에서는 정수 데이터를 문자열로 변환하는 것이 일반적인 작업입니다. 이 튜토리얼에서는 특정 코드 예제를 제공하면서 PHP의 내장 함수를 사용하여 int 유형을 문자열로 변환하는 방법을 소개합니다. 캐스트 사용: PHP에서는 캐스트를 사용하여 정수 데이터를 문자열로 변환할 수 있습니다. 이 방법은 매우 간단합니다. 정수 데이터 앞에 (문자열)을 추가하면 문자열로 변환됩니다. 아래는 간단한 샘플 코드입니다.

Win7 시스템에서 Go 언어를 설치하는 방법은 무엇입니까? Win7 시스템에서 Go 언어를 설치하는 방법은 무엇입니까? Mar 27, 2024 pm 01:42 PM

Win7 시스템에서 Go 언어를 설치하는 것은 비교적 간단한 작업입니다. 성공적으로 설치하려면 다음 단계를 따르세요. 다음은 Win7 시스템에서 Go 언어를 설치하는 방법을 자세히 소개합니다. 1단계: Go 언어 설치 패키지를 다운로드합니다. 먼저 Go 언어 공식 웹사이트(https://golang.org/)를 열고 다운로드 페이지로 들어갑니다. 다운로드 페이지에서 Win7 시스템과 호환되는 설치 패키지 버전을 선택하여 다운로드하세요. 다운로드 버튼을 클릭하고 설치 패키지가 다운로드될 때까지 기다립니다. 2단계: Go 언어 설치

필수 PHP 프로그램: 원활한 실행을 위해 설치하세요! 필수 PHP 프로그램: 원활한 실행을 위해 설치하세요! Mar 27, 2024 pm 05:54 PM

필수 PHP 프로그램: 원활하게 실행하려면 설치하세요! PHP는 웹 애플리케이션 개발에 널리 사용되는 널리 사용되는 서버 측 스크립팅 언어입니다. PHP 프로그램을 성공적으로 실행하려면 먼저 서버에 필요한 소프트웨어와 도구를 설치해야 합니다. 이 기사에서는 PHP 프로그램을 원활하게 실행하는 데 도움이 되는 특정 코드 예제와 함께 설치해야 하는 소프트웨어 및 도구를 소개합니다. 1. PHP 인터프리터 PHP 프로그램의 핵심은 PHP 코드를 구문 분석하고 실행하는 역할을 하는 PHP 인터프리터입니다. PHP 인터프리터를 설치하려면 다음을 따르십시오.

PHP FFmpeg 확장 설치 가이드: 따라하기 쉬운 튜토리얼 PHP FFmpeg 확장 설치 가이드: 따라하기 쉬운 튜토리얼 Mar 28, 2024 pm 02:17 PM

PHPFFmpeg 확장 설치 가이드: 간단하고 이해하기 쉬운 튜토리얼 웹사이트 개발 과정에서 오디오, 비디오 등 다양한 멀티미디어 파일을 처리해야 하는 경우가 있습니다. FFmpeg는 오디오, 비디오 및 기타 형식을 처리할 수 있고 다양한 트랜스코딩, 자르기 및 기타 작업을 지원하는 강력한 멀티미디어 처리 도구입니다. PHPFFmpeg 확장은 PHP에서 FFmpeg 함수를 호출하는 확장 라이브러리로 멀티미디어 파일을 쉽게 처리하는 데 사용할 수 있습니다. 아래에서는 PHPF에 대해 자세히 소개하겠습니다.

GateToken(GT) 화폐란 무엇인가요? GT 코인 기능 및 토큰 경제 소개 GateToken(GT) 화폐란 무엇인가요? GT 코인 기능 및 토큰 경제 소개 Jul 15, 2024 pm 04:36 PM

GateToken(GT) 화폐란 무엇인가요? GT(GateToken)는 GateChain 체인의 기본 자산이자 Gate.io의 공식 플랫폼 통화입니다. GT 코인의 가치는 Gate.io 및 GateChain 생태계의 발전과 밀접한 관련이 있습니다. GateChain이란 무엇입니까? GateChain은 2018년에 탄생했으며 Gate.io가 출시한 차세대 고성능 퍼블릭 체인입니다. GateChain은 사용자의 온체인 자산의 보안을 보호하고 편리한 분산 거래 서비스를 제공하는 데 중점을 두고 있습니다. GateChain의 목표는 기업 수준의 안전하고 효율적인 분산형 디지털 자산 저장, 유통 및 거래 생태계를 구축하는 것입니다. 게이트체인에는 원본이 있습니다.

컴퓨터에 360 Secure Browser를 다운로드하는 방법 컴퓨터에 360 Secure Browser를 다운로드하는 방법 Apr 12, 2024 pm 01:52 PM

컴퓨터에 360 Secure Browser를 다운로드하는 방법은 무엇입니까? 매우 안전한 웹 브라우저 소프트웨어입니다. 이 브라우저는 기능이 매우 풍부하고 작동이 매우 간단합니다. 360 Secure Browser를 사용하여 웹을 탐색하면 많은 사람들이 이 브라우저를 사용하는 것을 좋아합니다. 하지만 아직도 많은 사람들이 자신의 컴퓨터에 360 Secure Browser를 다운로드하고 설치하는 방법을 모릅니다. 이 글에서는 문제 해결에 도움이 되기를 바라며 360 세이프 브라우저 PC 버전의 설치 과정을 자세히 소개하겠습니다. 360 Secure Browser 컴퓨터 버전에서의 설치 과정 개요 1. 컴퓨터 메인 페이지에서 “360 Software Manager”를 찾아 입력하세요(그림 참조). 2. 360 소프트웨어 관리자를 열고 검색 상자를 찾으세요(그림 참조). 3. 검색을 클릭하세요

See all articles