php soap调用asp.net webservice
原文:php soap调用asp.net webservice

首先做一下准备工作,找到安装环境里的php.ini把;extension=php_soap.dll去掉前面的;。我这里使用的是wamp,php-php扩展里把php_soap启用就可以了。

一、用vs2008新建一个webservice:using System;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
    public Service () {

//如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

#region 返回一个字符串测试数据
    [WebMethod(Description = "测试方法")]
    public string trainNumber(string name)
    {
        return DateTime.Now.ToString()+"——"+name;
    }
    #endregion
    #region 返回一个整形
    [WebMethod(Description="测试方法")]
    public int trainInt(int ID)
    {
        return ID;
    }
    #endregion
}

二、使用iis发布webservice,并记下webservice地址http://localhost/SerPhp/Service.asmx。

(发webservice和发布一般网站是一样的。)

三、新建一个php文件

3.1、定义一下变量,并赋值webservice的地址

$ws=http://localhost/SerPhp/Service.asmx?wsdl",这里的wsdl是一种通信模式

3.2、创建一个SoapClient对象 $client=new SoapClient($ws);

3.3、查看WebService的方法和方法里的参数需要的类型(这里可以使用var_dump输出,查看webservice的方法)

查看方法$client->__getFunctions()

查看方法参数的类型$client->__getTypes()

3.4、给所需要的参数赋值(需要说明的是:如果有多个参数时可以使用不$parameters,$parameters是我本人使用的,可以使用不参数名)

$parameters=array("name"=>"张三")

3.5、调用方法,并取得返回值:$username=$client->trainNumber($parameters)

3.6、打印返回的结果:这里提供三种方法var_dump($username)、print_r($username)、foreach($username as $key=>$var){echo var}

<?php
$ws="http://localhost/SerPhp/Service.asmx?wsdl";
$client=new SoapClient($ws);
echo "SOAP服务器提供的开放函数:";

echo '<pre>';
var_dump($client->__getFunctions());
echo '</pre>';

echo "SOAP服务器提供的Type:";

echo '<pre>';
var_dump($client->__getTypes());
echo '</pre>';

echo "执行trainNumber的结果";
try{
 $parameters1=array('name'=>"张黎明");
 $parameters2=array("ID"=>123);//123带双引号不带都一样的啊
 $password=$client->trainInt($parameters2);
 $username=$client->trainNumber($parameters1);
}catch(SoapFault $fault){
 echo "Fault! code:".$fault->faultcode."string:".$fault->faultstring;
}
//echo(htmlspecialchars($client->__getLastRequest()));
echo "<pre>";
var_dump($password);
foreach($password as $key=>$val1){
 echo $val1;
}
echo "</br>";
var_dump($username);
print_r($username);
foreach($username as $key=>$val){
 echo $val;
}
echo "</pre>";
?>

posted on 2014-12-03 10:32 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4139313.html

php soap调用asp.net webservice相关推荐

  1. php 如何利用 soap调用.Net的WebService asmx文件

    原文:php 如何利用 soap调用.Net的WebService asmx文件 最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需要测试一下php版本对它的调用,经过各 ...

  2. iOS开发笔记 基于wsdl2objc调用asp.net WebService

    1.准备 先下载待会要用到的工具 WSDL2ObjC-0.6.zip WSDL2ObjC-0.7-pre1.zip 我用的是WSDL2ObjC-0.6.zip 1.1搭建asp.net WebServ ...

  3. php .asmx,PHP应用:php实现通过soap调用.Net的WebService asmx文件

    <PHP应用:php实现通过soap调用.Net的WebService asmx文件>要点: 本文介绍了PHP应用:php实现通过soap调用.Net的WebService asmx文件, ...

  4. php .asmx,php实现通过soap调用.Net的WebService asmx文件

    本文实例讲述了php实现通过soap调用.Net的WebService asmx文件.分享给大家供大家参考,具体如下: 最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需 ...

  5. php .asmx,php实现soap调用.Net的WebService asmx文件

    本文实例讲述了php实现通过soap调用.Net的WebService asmx文件.分享给大家供大家参考,具体如下: 最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需 ...

  6. jQuery Ajax 方法调用 Asp.Net WebService 的详细例子

    这很常用,搜索了一下博客园的"找找看"和谷歌,看到大部分都是转载于一两篇文章(而且来源还不是博客园),有的是简单的说一点无法运行,给初学者的调试和学习带来不方便,我在这里将jQue ...

  7. android 调用asp.net webservice 图片上传到服务器

    图片转换: package com.qsmart.audit.utility;import java.io.ByteArrayOutputStream; import java.io.File; im ...

  8. Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)

    老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的各种数据类型做了一个总结! 本文章没有什么高难度技术,就是记录一下,汇总一下,以便以后需要时查看 ...

  9. EXT调用ASP.NET AJAX WebService

    在asp.net ajax中,使客户端调用WebService变得非常的简单,而且非常有用(个人觉得这个功能是asp.net ajax的核心,很多与客户端的交互都需要个功能来辅助实现).那在EXT中, ...

最新文章

  1. php井字游戏,python实现井字棋游戏
  2. python ConfigParser 小试
  3. vb 获取mysql表第一行数据_vb如何将远程获取的数据插入本机数据表中
  4. OpenCV-双边滤波cv::bilateralFilter
  5. 轻重搭配 模拟 贪心
  6. Picasso源码的简单解析(二)
  7. python脚本批量登录crt_python批量修改SecureCRT会话密码-阿里云开发者社区
  8. Delphi的5种方法类型
  9. 干货丨开源硬件与行业革新
  10. 海外服务器配置多少带宽比较合适?
  11. 手把手带你使用Paint in 3D和Photon撸一个在线涂鸦画板
  12. ubuntu16.04安装微软kinect V1驱动
  13. 产品经理知识体系——职责
  14. 038--想和权证恋个爱
  15. 香橙派装php_【香橙派】安装宝塔面板 orange pi
  16. 基于net-snmp的代理端及管理端开发手册
  17. 几年前的项目用了YYYY-MM-dd,跨年夜老板喊我回去改Bug
  18. 计组复习-cache
  19. Linux 各种压缩、解压命令
  20. 【实用工具】RD Clinet使用教程之ipad连接windows

热门文章

  1. CUDA C编程权威指南 第五章 共享内存和常量内存
  2. 11 User Space, Kernel Space, and the System Call API(用户空间,核空间,系统api)
  3. c语言找到串口,再次熟悉串口
  4. 阿里2000亿,腾讯5000亿,我们究竟需要多少数据中心?
  5. 载 Kubernetes和OpenStack到底是什么关系?先搞清楚,再系列学习
  6. Kubernetes学习总结(5)——Kubernetes 常见面试题汇总
  7. ECMAScript 6学习总结(2)——ECMAScript 6常用方法总结
  8. Java基础学习总结(66)——配置管理库typesafe.config教程
  9. Linux学习总结(15)——提高 Vim 和 Shell 效率的 9 个建议
  10. Maven学习总结(22)——Maven常用插件介绍