简单范例php调用C# WebService
准备工作:
1. 安装IIS对于PHP的支持,看这里
2. 要调用Web Service需要nusoap支持,只要弄个nusoap.php就可以了,把它放在要运行的php文件能够引用的地方,比如我放在同一目录下。
可以从这里下载最新版本的NuSoap,不过貌似最近sourceforge被和谐了?
3. 创建一个C#的web service,这个就不多说了,我用vs2008的wizard创建了一个最简单的,让它运行在:http://localhost/webservice1/service1.asmx
[WebMethod] public string HelloWorld() { return "Hello World"; }
ok,一切就绪。在某php文件中如下写法:
<?php require_once('nusoap.php'); /*index.php*/ $client = new SoapClient('http://localhost/webservice1/service1.asmx?wsdl', true); $str = $client->call('HelloWorld'); if(!$err = $client->getError()) { echo "return:", $str['HelloWorldResult']; } else { echo "error:", $err; } ?>
第一次搞这个php代码,只能意会了
这种方式不太好用,当使用PHPEclipse进行编译时,报告错误:
Debug Strict (PHP 5): /LocalizationTest/nusoap.php line 6496 - Assigning the return value of new by reference is deprecated
Compile Error: /LocalizationTest/nusoap.php line 7240 - Cannot redeclare class soapclient
有人说可以通过改名字的方式修改nusoap.php剔除这个错误,这样总是不方便,后来发现php5本身就支持SOAP调用Web Service:
<?php //get localization strings from C# webservice $client = new SoapClient('http://localhost/webservice1/Localization.asmx?wsdl'); echo "Call web service method from C# WebService:\n"; $result = $client->GetLocalizationResource(); if(!is_soap_fault($result)) { echo "return:\n", $result->GetLocalizationResourceResult; } else { echo "soap call fault"; } ?>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器