您当前的位置:首页 > 今日分享头条 > 正文

soapclient(急!!PHP SoapClient问题)

本文目录

  • 急!!PHP SoapClient问题
  • VB通过SoapClient调用WS,怎么设置超时
  • python 有没有php里面的soapclient这样的东西
  • php中soapClient如何配置
  • 为什么SoapClient的mssoapinit方法会失败
  • php SoapClient 是什么
  • soapclient 生成请求,怎么看
  • php连接webservice每次都要new SoapClient()吗
  • soapclient是什么
  • php怎样通过SoapClient调用webservice接口

急!!PHP SoapClient问题

你应该把调用webservice上的方法放try里面 new SoapClient是不会报错的。$client = new SoapClient($i_url);try {//连接服务器$res= $client-》webaction();} catch (Exception $e) {echo ’Message:’.$e-》getMessage();}如果地址不对,应该会报Not Found

VB通过SoapClient调用WS,怎么设置超时

我们都知道,调用WS可以在工程中添加对WS的WEB引用。但是,如果我们不想通过添加引用的方式,而是在代码中动态引用该怎么办呢看首先,我们该想到WS的实现也是一个类的形式。其次,WS在传输过程中是通过WSDL来进行描述的(使用SOAP协议)。因此,我们需要获取WS的WSDL描述,并通过该描述来动态生成程序集。最后:通过反射来获取新生成的程序集,并调用其方法!上述步骤需要引用如下四个名称空间:using System.Web.Services.Description; //WS的描述//以下几个用于根据描述动态生成代码并动态编译获取程序集using System.CodeDom; using Microsoft.CSharp;using System.CodeDom.Compiler;上述几个名称空间中包括如下几个重要的类:using System.Web.Services.Description下:ServiceDescription //WS描述ServiceDescriptionImporter //通过描述生成客户端代理类,特别注意其中的Style以下是MSDN对其的描述: XML Web services 的接口通常由 Web 服务描述语言 (WSDL) 文件来说明。例如,若要获取有关使用 处公开的 ASP.NET 的 Web 服务的 WSDL 说明,只需导航到 ?WSDL。使用 ServiceDescriptionImporter 类可以方便地将 WSDL 说明中包含的信息导入到System.CodeDom.CodeCompileUnit 对象。通过调整 Style 参数的值,可以指示 ServiceDescriptionImporter 实例生成客户端代理类(通过透明调用该类可提供 Web 服务的功能)或生成抽象类(该类封装 Web 服务的功能而不实现该功能)。如果将 Style 属性设置为 Client,则 ServiceDescriptionImporter 生成客户端代理类,通过调用这些类来提供说明的 Web 服务的功能。如果将Style 属性设置为 Server,则 ServiceDescriptionImporter 实例生成抽象类,这些类表示所说明的 XML Web services 的功能而不进行实现。然后,可以通过编写从这些抽象类继承的类来对其进行实现,并实现相关的方法。using System.CodeDom下: CodedomUnit //它用于设定动态代码的名称空间,类名等,可以通过ServiceDescriptionImporter.Import()方法将WS的描述代码写入该类,以作动态编译用using System.CodeDom.Compiler下:CodedomProvider //用于创建和检索代码生成器和代码编译器的实例,我们主要用到其实现子类CShareCodeProvider可以直接用CShareCodeProvider provider=new CShareCodeProvider()来生成,或者用CodedomProvider.CreateProvider(“CSharp“)来生成ICodeCompiler //用于编译基于 System.CodeDom 的源代码表示形式。 它通过CodedomProvider的CreateCompiler()方法来CompilerResults //表示从编译器返回的编译结果。 它由ICodeCompiler根据指定的编译器设置从指定的 CodeCompileUnit 所包含的 System.CodeDom 树中编译程序集并返回。CompiledAssembly 属性指示编译的程序集。了解如上信息后,就可动态调用WS了。

python 有没有php里面的soapclient这样的东西

SOAP.py 客户机和服务器SOAP.py 包含的是一些基本的东西。没有 Web 服务描述语言(Web Services Description Language,WSDL)或者任何其它附加的东西,只有用 Python 实现的 SOAP 客户机和服务器的透明支持。甚至这个包中的一个很好的功能也只是与基础架构相关:SOAP.py 支持安全套接字层(SSL)用于加密的 SOAP 传输。为使用这个功能,您必须安装 M2Crypto,M2Crypto 是一个库,包含各种加密工具和格式,从 RSA 和 DSA 到 HTTPs、S/MIME 等等。在这一部分,我们不准备讨论 SOAP.py 的 SSL 支持。SOAP 操作摘要目前为止,SOAP 实用程序好象仍是比较流行的使用 Python 的开放源代码活动。下面是该项目的纲要以及它们目前的状态。首先,参与者:4Suite SOAP,由 Fourthought 管理SOAPy,由 Adam Elman 管理SOAP.py,Python 项目的一个 Web 服务项目soaplib,由 Secret Labs 管理Orchard,由 Ken MacLeod 管理PySOAP,由 Dave Warner 管理4Suite SOAP 是我们自己的实现,我们在本专栏的前面三部分中使用过(请参阅 参考资料以获得它的链接)。它目前仍在开发中。SOAPy 是在 2001 年 4 月公布的,目前处于 alpha 的预备阶段,但现在好象停止开发了。SOAP.py 开发被冻结了。SOAP.py 这个项目是由 actzero 公司赞助的,而 actzero 却不再从事这一行业了。正在邀请自愿开发/维护 SOAP.py 的组织。soaplib 的开发好象也延缓了,考虑到 Secret Labs 这段时间所承担的大量工作,或许就可以理解为什么会这样了。这个瑞典的公司是由 Fredrik Lundh 掌管的,他在 Python 圈内是出名的“工作狂”,同时也是 Python Association 董事会的一名成员。Secret Labs 还开发 PythonWare(Python 的一个核心和重要的附加模块);PythonWorks(一个领先的 Python IDE);Python Imaging Library 和许多其它好东西(日常 Python-URL Web 日志就是其中的一部分)。Orchard 是一个数据管理框架,基本上是一种用一个公共接口管理不同数据格式的方法。它实现了一个 SOAP 客户机作为在远程过程调用中向 SOAP 服务器发送 Orchard 数据项的基本方法(被称为节点)。PySOAP 这个项目主要是想作为 Dave Warner 的 Church 管理套件的一部分,但它还从没发行过任何文件,好象是一个毫无生气的项目。安装开始先下载分发包(在写这篇文章的时候,SOAPpy 0.9.7 是最新的分发包),把文件解包,转到结果目录,并把文件 SOAP.py复制到自己倾向的位置。当然,这个“倾向”就是需要技巧的地方。由于这些 SOAP lib 中有很多都使用大小写组合不同的“soap.py”作为模块名,所以大家一定要小心。当然,UNIX 用户只需关心大小写是否精确匹配,但对于 Windows 用户来说,甚至“SOAP.py”和“soap.py”之间的冲突也会带来麻烦。Orchard 的 SOAP.py 也有一个容易发生冲突的名称,但它有可能避开所有的问题,因为它的模块聪明地放在了 Orchard 包中。上面的内容简言之就是建议您确保安装所有的 Python SOAP 模块时都使用与众不同的包名称。在我们的案例中,我们在 PYTHONPATH 中发现了一个合适的目录并创建了一个 WebServices 包,把 SOAP.py 放在了这个包中。因此,在 Linux 中:$ mkdir ~/lib/python/WebServices$ touch ~/lib/python/WebServices/__init__.py$ cp SOAPpy097/SOAP.py ~/lib/python/WebServices请注意很重要的第二条命令,它将生成一个 __init__.py 文件,这个文件将 WebServices 目录标志为 Python 包。如果您需要把这些代码打包成 Windows 版本,您可能希望向空文件中输入一些注释,因为一些 Windows 工具不创建空文件。您已深入主题了对于公开提供的 SOAP 服务器,早已经有了好几个活动的注册中心。最流行的可能是 XMethods。当然,它也是一个相当有趣的指导,通过它我们可以了解 SOAP 的实际状况,而不要听它的吹嘘。这里的大多数公共 Web 服务仍然只是一些无关紧要的东西,几乎不值得我们勇敢的新模型多费口舌,但那是另一回事了。实际上,我们将选择一个公共服务来演示和测试如何把 SOAP.py 作为 SOAP 客户机使用。或者,我们可以试试。作者尝试的第一个服务,卫生保健提供者定位器,在遇到下列报错消息时显示 SOAP 互操作性的当前状态中的陷阱:WebServices.SOAP.faultType: 《Fault soap:Client: Server did not recognize the value ofHTTP Header SOAPAction: ““.》哦。SOAPAction 是一个 HTTP 头,应该是用来标记被访问服务的。它是 SOAP 请求中必需的头,但即便是设置了所需的头(只是一对空的双引号)后,上面的错误仍然存在。作者发现大多数 MS SOAP 实现都存在这个问题。在试遍了这些服务后,我们断定,Delphi 实现好象与 SOAP.py 合作得最好,但在试服务时 — 即使是用 Delphi 实现时,也返回复杂的类型,比如列表,SOAP.py 无法使用它们,返回不带数据的 WebServices.SOAP.typedArrayType 实例。最后,作者选择了一个相当合适的 Web 服务,该服务返回漫画《丁丁历险记》中的人物 Haddock 船长常用的骂人语言(是的,大多数 Web 服务都是这样)。 清单 1(curse.py)就是这个程序。清单 1:访问 Curse 生成器 SOAP 服务的 SOAP.py 程序#!/usr/bin/env pythonimport sys#Import the SOAP.py machineryfrom WebServices import SOAPremote = SOAP.SOAPProxy(“ck.exe/soap/IHaddock“,namespace=“urn:HaddockIntf-IHaddock“,soapaction=“urn:HaddockIntf-IHaddock#Curse“)try:lang = sys.argvexcept IndexError:lang = “us“result = remote.Curse(LangCode=lang)print “What captain Haddock had to say: “%s““%result把一切综合在一起导入库后,我们将设置代理对象 remote 。这个对象将方法调用转换为远程 SOAP 消息。它的初始化器使用管理远程请求的关键参数: 服务器的 URI(被称为“端点”)、请求元素的 XML 名称空间(通过它,SOAP-as-RPC 将 口头承诺变成 XML 基础)和 SOAPAction 头值。接下来,我们将确定方法参数,对于这个 Web 服务来说,方法参数只是 Haddock 骂人的语言,瑞典语(“se”)或英语(奇怪的是,是“us”而不是“en”)。最后,我们调用名称正确的方法,代理对象的 Curse 进行 SOAP 调用,然后打印出结果。下面的会话演示了对该程序的使用:$ python curse.pyWhat captain Haddock had to say: “Ectoplasmic Byproduct!“我们自己的 SOAP 服务器用 SOAP.py 实现 SOAP 服务器相当容易。作为一个示例,我们将仿建字段,还要实现一个很常见的服务:一个程序,给出年份和月份,它将以字符串的形式打印出日历。它的程序服务器是 清单 2(calendar-ws.py)。清单 2:实现日历服务器的 SOAP.py 程序#!/usr/bin/env pythonimport sys, calendar#Import the SOAP.py machineryfrom WebServices import SOAPCAL_NS = “/simple-cal“class Calendar:def getMonth(self, year, month):return calendar.month(year, month)def getYear(self, year):return calendar.calendar(year)server = SOAP.SOAPServer((“localhost“, 8888))cal = Calendar()server.registerObject(cal, CAL_NS)print “Starting server...“server.serve_forever()进行过必要的导入后,我们为自己的服务器定义 SOAP 请求元素期望的名称空间( CAL_NS )。接下来我们定义实现所有方法的类,这些方法将被公开为 SOAP 方法。大家也可以把单个函数作为 SOAP 方法注册,但使用类方法是最灵活的,特别是当您想管理调用间的状态时。这个 Calendar 类定义了一个方法 getMonth ,该方法使用 Python 的内置日历模块在文本表单中返回月度日历,同时它还定义了另一个返回整年日历的方法。然后创建 SOAP 服务器框架的一个实例,这个实例还带有侦听端口 8888 的指令。我们还必须创建 Calendar 类的一个实例,这个实例在下一行中被注册用来处理 SOAP 消息,同时为其指出相关的名称空间。最后,我们调用 serve_forever 方法,该方法直到进程终止才返回。为运行服务器,请打开另一个命令 shell 并执行 python calendar-ws.py 。执行结束时使用 ctrl-C 杀死进程。我们本来可以用也是用 SOAP.py 写的客户机测试服务器,但那太显而易见了。我们还是用低级 Python 编写客户机把 SOAP 响应作为 XML 字符串来构建,并发送一条 HTTP 消息。这个程序(testcal.py)在 清单 3中。清单 3:用 Python 核心库写的访问日历服务的客户机import sys,

php中soapClient如何配置

一、Linux下安装soap模块安装完php后最好保留当时安装的文件,比如usr/local/php-5.3.2查看soap模块是否安装的办法:在php的安装目录下运行php -m来查看如:/usr/local/php/bin/php -m |grep ‘soap’如果没有安装,则进入php的安装源文件夹cd php-5.3.2/ext/soap进入后在此运行phpize命令/usr/local/php/bin/phpize查看信息是否有出错,没有出错的话运行如下命令:./configure –with-php-config=/usr/local/php/bin/php-config –enable-soap然后是安装编译make最后是安装make install安装好之后会提示soap.so文件的保存路径编译后的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222目录下,接着修改php.ini文件手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = “./”,默认是注释掉的修改为extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222/”并在此行后增加如下,然后保存:extension = “soap.so”重新启动apache,在运行php -m就已经能看到扩展的soap模块了。如果还要安装扩展别的模块可以以此类推。二、Windows下安装soap模块在Windows下可以通过修改php.ini来选择当PHP启动时加载哪些扩展库。也可以在脚本中通过使用 dl()来动态加载。PHP扩展库的DLL文件都具有php_前缀。很多扩展库都内置于Windows版的PHP之中。这意味着要加载这些扩展库不需要额外的DLL文件和extension配置指令。Windows下的PHP扩展库列表列出了需要或曾经需要额外PHP DLL文件的扩展库。要在php.ini中启用某扩展库,需要去掉该行extension=php_*.dll前的注释符号,将想要加载的扩展库前的分号(;)删除即可。启用php_soap.dll扩展库// 将这一行;extension=php_soap.dll// 改成这样extension=php_soap.dllNote: 如果运行服务器模块版的PHP,在修改了php.ini之后别忘了重新启动web服务器以使其改动生效。下面是内置的扩展库列表:php_bz2.dll bzip2压缩函数库php_calendar.dll 历法转换函数库php_crack.dll 密码破解函数库php_ctype.dll ctype家族函数库php_curl.dll CURL,客户端URL库函数库php_dba.dll DBA:数据库(dbm 风格)抽象层函数库php_dbase.dll dBase函数库php_dbx.dll dbx函数库 php_domxml.dll DOM XML函数库php_dotnet.dll .NET函数库php_exif.dll EXIF函数库php_fbsql.dll FrontBase函数库php_fdf.dll FDF:表单数据格式化函数库php_filepro.dll filePro函数库php_ftp.dll FTP函数库php_gd.dll GD库图像函数库php_gd2.dll GD库图像函数库php_gettext.dll Gettext函数库php_hyperwave.dll HyperWave函数库php_iconv.dll ICONV字符集转换php_ifx.dll Informix函数库php_iisfunc.dll IIS 管理函数库php_imap.dll IMAP,POP3 和 NNTP 函数库php_ingres.dll Ingres II函数库php_interbase.dll InterBasefunctionsphp_java.dll Java函数库php_ldap.dll LDAP函数库php_mbstring.dll 多字节字符串函数库php_mcrypt.dll Mcrypt 加密函数库php_mhash.dll Mhash函数库php_mime_magic.dll Mimetype函数库php_ming.dll Ming函数库(Flash)php_msql.dll mSQL函数库php_mssql.dll MSSQL函数库php_mysql.dll MySQL函数库php_mysqli.dll MySQLi函数库php_oci8.dll Oracle 8函数库php_openssl.dll OpenSSL函数库php_overload.dll 对象重载函数库php_pdf.dll PDF函数库php_pgsql.dll PostgreSQL函数库php_printer.dll 打印机函数库php_shmop.dll 共享内存函数库php_snmp.dll SNMP函数库php_soap.dll SOAP函数库php_sockets.dll Socket函数库php_sybase_ct.dll Sybase函数库php_tidy.dll Tidy函数库php_tokenizer.dll Tokenizer函数库php_w32api.dll W32api函数库php_xmlrpc.dll XML-RPC函数库php_xslt.dll XSLT函数库php_yaz.dll YAZ函数库php_zip.dll Zip文件函数库php_zlib.dll ZLib压缩函数库

为什么SoapClient的mssoapinit方法会失败

我在asp.net下构建了一个Web Service--》Service1,其中一个方法TestAddition是得到两个数字的和,但是在asp页面中利用SoapToolkit2.0的创建MSSOAP.SoapClient对象,要用mssoapinit方法初始化失败,Web Service的程序如下:using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Web; using System.Web.Services; namespace WebService {/// 《summary》/// Service1 的摘要说明。/// 《/summary》public class Service1 : System.Web.Services.WebService{public Service1(){//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的InitializeComponent();}#region 组件设计器生成的代码//Web 服务设计器所必需的private IContainer components = null;/// 《summary》/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// 《/summary》private void InitializeComponent(){}/// 《summary》/// 清理所有正在使用的资源。/// 《/summary》protected override void Dispose( bool disposing ){if(disposing && components != null){components.Dispose();}base.Dispose(disposing);}#endregion// WEB 服务示例// HelloWorld() 示例服务返回字符串 Hello World// 若要生成,请取消注释下列行,然后保存并生成项目// 若要测试此 Web 服务,请按 F5 键//[WebMethod] //public string HelloWorld() //{ //return “Hello World“; //}[WebMethod]public string TestAddition(int a,int b){int c;c = a + b;return c.ToString();}} } asp中页面的代码如下:《%@LANGUAGE=“VBSCRIPT“ CODEPAGE=“936“%》《 %Dim drmSoapClientDim resConst WSDL_URL = “http://localhost/WebService/Service1.asmx?wsdl“Set drmSoapClient = CreateObject(“MSSOAP.SoapClient“)drmSoapClient.ClientProperty(“ServerHTTPRequest“) = truedrmSoapClient.mssoapinit “http://localhost/WebService/Service1.asmx?wsdl“,“Service1“,“Service1Soap“res = drmSoapClient.TestAddition(23,34)Response.Write(res) %》错误信息如下:Microsoft VBScript 编译器错误 错误 ’800a03f6’ 缺少 ’End’ /iisHelp/common/500-100.asp,行242 Server 错误 ’80070057’ WSDLReader:Analyzing the WSDL file failed HRESULT=0x80004005 - WSDLReader:Initialization of service failed HRESULT=0x80004005 - WSDLService:Initialization of the port for service Service1 failed HRESULT=0x80004005 - WSDLPort:Analyzing the binding information for port Service1Soap failed HRESULT=0x80004005 - WSDLPort:An operation for port Service1Soap could not be initialized HRESULT=0x80004005 - WSDLOperation:Initializing of the input message failed for operation TestAddition HRESULT=0x80004005 - WSDLOperation:Initialization of a SoapMapper for operation TestAddition failed HRESULT=0x80004005 - SoapMapper:The schema definition for SoapMapper TestAddition could not be found HRESULT=0x80004005 /DRMClient/WebServiceTest/TestAddition.asp,行9

php SoapClient 是什么

SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。PHP5中的这个SOAP扩展目的是为了实现PHP对Web services的支持。与其它实现PHP对Web services的支持的方法不同,SOAP扩展是用C写的,因此它比其它方法具有速度优势。php SoapClient 就是可以基于SOAP协议访问webservice的php客户端。nusoap 是一个可以提供Soap访问的类库,下载地址:http://sourceforge.net/projects/nusoap

soapclient 生成请求,怎么看

Android网络通信的方式有两种:基于Socket和基于HTTP。基于HTTP又包括两种编程方式:HttpUrlConnection和HttpClient。HttpURLConnection和SOAP完全是两回事,前者是网络编程方式(发送请求、获得应答),后者是一种数据传输协议,由于其基于XML,可以穿越防火墙,所以在WebService中大受欢迎。我们通常使用AXIS之类的第三方组件包实现SOAP调用,使用WebService。当然也可以利用J2SE中的HttpURLConnection类来实现SOAP调用,只是实现起来不像第三方组件包那样优雅。所以二者区别是:HttpURLConnection实现网络连接数据传输,SOAP以XML方式定义传输的数据格式(当然SOAP不光光定义数据格式,还包括方法、消息很多格式)。其实将HTTP和SOAP放在一起比较更有意义,借用网络上的一段文字:不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,

php连接webservice每次都要new SoapClient()吗

最近工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经包含了处理soap的模块,但是资料太少了,上php官网上查帮助,写的不是很容易理解,经过多次实践,终于搞清楚了,php调用web service还是非常简单的。下面用一个例子说明:web service服务是查询QQ用户是否在线使用php5开发客户端:《?phptry { //$client = new SoapClient(“HelloService.wsdl“,array(’encoding’=》’UTF-8’)); $client = new SoapClient(“webservices/qqOnlineWebService.asmx?wsdl“); var_dump($client-》__getFunctions()); print(““); var_dump($client-》__getTypes()); print(““); class qqCheckOnline{ var $qqCode = “10000“;};$arrPara = array(new qqCheckOnline); $arrResult = $client-》__Call(“qqCheckOnline“,$arrPara);//$client-》qqCheckOnline($arrPara); echo $arrResult-》qqCheckOnlineResult . ““;} catch (SOAPFault $e) { print $e;}?》代码确实很简单吧,创建SoapClient对象时,可以使用保存在本地WSDL文件,也可以使用远程的地址,后面的array数组里可以带上很多的参数,具体参数可以查php的SoapClient帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。调用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。如果参数要求是一个结构体,请用类代替,如上面的代码。另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.

soapclient是什么

这是SOAP服务的客户端,在程序代码里,需要先引用(using...) ,再用CreateObject(SoapClient30)来建立对象,最后就可以使用了。

php怎样通过SoapClient调用webservice接口

首先要先配置;extension=php_soap.dll我们打开php.iniphp怎样通过SoapClient调用webservice接口我们打开一个webservice的例子php怎样通过SoapClient调用webservice接口怎样看这个xml的文件呢,如下图php怎样通过SoapClient调用webservice接口下面我们开始写代码,先实例化SoapClientphp怎样通过SoapClient调用webservice接口使用接口方法,get_object_vars得到的是指定的对象中定义的属性组成的关联数组php怎样通过SoapClient调用webservice接口6最后运行一下测试一下php怎样通过SoapClient调用webservice接口


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: tplink路由器设置网址(tplink设置网站多少)

下一篇: 时光倒回那一年歌词(那一年歌词)



推荐阅读