NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类。而使用NuSoap 调用.NET WebService或J2EE WebService的时候可能都会遇到中文乱码问题,下面介绍这一问题的出现的原因和相应的解决方法。
NuSoap调用WebService出现乱码的原因:
通常我们进行WebService开发时都是用的UTF-8编码,这时我们需要设置:
//$client是一个soapclient对象
$client->soap_defencoding = 'utf-8';
同时,需要让xml以同样的编码方式传递:
$client->xml_encoding = 'utf-8';
至此应该是一切正常了才对,但是我们在输出结果的时候,却发现返回的是乱码。
NuSoap调用WebService出现乱码的解决方法:
实际上,开启了调试功能的朋友,相信会发现$client->response返回的是正确的结果,为什么$result =
$client->call($action, array('parameters' => $param)); 却是乱码呢?
研究过NuSoap代码会发现,当xml_encoding设置为UTF-8时,NuSoap会检测decode_utf8的设置,如果为true,会执行 PHP 里面的utf8_decode函数,而NuSoap默认为true,因此,我们需要设置:
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'utf-8';
这样一设置,乱码的问题就解决了。
分享到:
相关推荐
通过调用`configureWSDL`和`register`方法,nusoap会自动创建一个描述你定义的函数的WSDL。 4. **SOAP客户端调用** 要调用上述服务,你可以创建一个SOAP客户端。例如: ```php require_once('nusoap.php'); $...
通过学习和掌握这些知识点,开发者能够构建和调用跨平台的WebService,解决实际工作中遇到的跨系统通信问题。无论是Windows程序员还是Linux开发者,都能够利用WebService实现分布式应用的整合,极大地扩展了软件的可...
由于PHP默认编码为ISO-8859-1,而Java客户端默认编码可能为GBK,因此需要对中文进行编码转换,避免出现乱码。 #### 四、总结 通过以上步骤,我们可以实现Java客户端调用PHP Webservice服务的功能。整个过程涉及到...
2. **创建SOAP客户端**:对于消费远程SOAP服务,创建一个nusoap_client对象,传入服务的URL,然后调用相应的方法并传递参数。 3. **调用服务**:服务器端通过接收请求并执行相应的函数,返回结果;客户端则通过调用...
内含nusoap 写的一个简单php服务端,客户端采用.net写的一个动态调用类 相关帖子 http://topic.csdn.net/u/20090819/19/94f3754b-7635-4377-8dc4-08cab4cd1aad.html?87815 如果还有什么不清楚。可以联系我
5. **调用Web服务方法**:然后,你可以通过`call`方法调用Web服务的特定方法,并传递必要的参数。例如,有三个不同的方法`update_location`、`user_action`和`sos`,每个方法都有各自的参数: ```php $param = ...
2. **SOAP客户端**:同时,nusoap也支持生成SOAP客户端,可以调用远程SOAP服务。通过nusoap_client类,开发者可以构造SOAP请求并接收响应。 3. **自动类型转换**:nusoap库能自动处理数据类型转换,如PHP到SOAP以及...
4. **错误处理:** 提供了内置的错误处理机制,当出现错误时,可以生成适当的错误消息并将其返回给调用者。 5. **WSDL支持:** NUSOAP可以生成WSDL(Web Services Description Language)文件,这是一个XML格式的...
NuSoap库还提供了错误检查机制,通过`getError`方法可以获取任何调用过程中出现的错误信息。此外,`debug_str`属性可以用于输出调试信息,帮助开发者更好地理解请求和响应的过程。 这个例子展示了如何使用NuSoap库...
nusoap库提供了`nusoap_client`类,可以用来连接到远程SOAP服务并调用其方法。以下是一个基本的示例: ```php require_once('nusoap.php'); $client = new nusoap_client('http://example.com/soap/server?wsdl', ...
2. 调用服务方法并处理返回结果: ```php $result = $client->call('calculateSum', array('num1' => '10', 'num2' => '20')); echo "The sum is: " . $result; ``` 五、lib文件夹 在提供的文件列表中,`lib`...
nusoap.php下载
2. 创建SOAP客户端:nusoap_client类提供了与远程SOAP服务器交互的功能,可以调用其方法来执行远程服务并获取响应。 3. WSDL生成:nusoap.php可以自动根据定义的服务生成WSDL文档,这有助于服务的消费者了解接口。 ...
SOAP 是一个标准化的协议,因此 nusoap 创建的服务可以被任何支持 SOAP 的语言调用,如 Java、.NET、Python 等。 ### 三、nusoap.php 示例应用 1. **构建 RESTful API 的 SOAP 接口**: 对于已经存在的 REST API...
在nusoap-docs-0.9.5文档中,你将找到关于nusoap库的详细使用指南,包括安装步骤、基本示例、类和方法的参考,以及如何处理错误和异常。这些文档对于初学者来说是非常宝贵的资源,可以帮助他们快速理解和上手nusoap...
3. 代理类:生成代理类,使得调用远程方法就像调用本地方法一样方便。 4. HTTP代理和SSL支持:允许通过HTTP代理进行通信,并支持SSL加密通信。 NuSOAP的安装非常简单,只需将下载的文件放到PHP可以访问的目录下。它...
同样,也可以创建SOAP客户端,通过指定WSDL地址或者手动定义方法调用来调用远程服务。 在实际开发中,了解和掌握nusoap库的使用能够极大地扩展PHP应用的交互能力,使得PHP应用程序可以无缝地与其他使用SOAP协议的...
- 服务消费者通过UDDI找到服务,解析WSDL获取调用方法和参数信息。 - 使用SOAP消息通过HTTP或HTTPS与服务交互,执行请求操作。 3. **实现WebService** - **Java平台**:使用JAX-WS(Java API for XML Web ...