php soap调用asp.net webservice

时间:2022-09-13 20:18:27

原文: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>";
?>

php soap调用asp.net webservice的更多相关文章

  1. Android Studio 2&period;3&period;3 调用asp&period;net webService实战(拒绝忽悠)

    1.路径中不能包含localhost(本来想在本机调试,就是不行,没办法发布到远程服务器) 2.必须采用异步的办法(阻塞主线程的是肯定不行了) 3.以下是全部的源代码(毫不保留) package co ...

  2. jQuery Ajax 方法调用 Asp&period;Net WebService 以及调用aspx&period;cs中方法的详细例子

    一.jQuery Ajax 方法调用 Asp.Net WebService (引自Terry Feng) Html文件 <!DOCTYPE html PUBLIC "-//W3C//D ...

  3. iOS开发笔记 基于wsdl2objc调用asp&period;net WebService

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

  4. Jquery利用ajax调用asp&period;net webservice的各种数据类型&lpar;总结篇&rpar;

    原文:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇) 老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的 ...

  5. php 如何利用 soap调用&period;Net的WebService asmx文件

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

  6. jQuery Ajax方法调用 Asp&period;Net WebService、WebMethod 的详细实例代码

    将以下html存为ws.aspx <%@ Page Language="C#" AutoEventWireup="true" %> <scri ...

  7. PHP使用SOAP调用&period;net的WebService数据

    需要和一个.net系统进行数据交换,对方提供了一个WebService接口,使用PHP如何调用这个数据呢,下面就看看使用SOAP调用的方法吧 这个与一般的PHP POST或GET传值再查库拿数据的思路 ...

  8. PHP通过传递对象参数调用asp&period;net Webservice 服务

    asp.net 测试服务 ProcessRequest.asmx文件代码  public class ProcessRequest : System.Web.Services.WebService   ...

  9. 使用jQuery调用ASP&period;NET WebService的简易教程

    鉴于使用Javascript调用Web Service配置略麻烦,所以记录一下. 1. 新建一个Web服务(WebService.asmx) 2. 取消注释// [System.Web.Script. ...

随机推荐

  1. 去除NSString里面的空格

    NSString *password = @"12  34"; [password stringByTrimmingCharactersInSet:[NSCharacterSet ...

  2. 315Mhz、433Mhz无线遥控信号的解码分析和模拟

    摘要 前段时间学习无线电的同时了解到arduino是作为技能尚未成熟技术宅的我继树莓派又一个不错的选择.于是花了200元购得3块arduino开发板(2*nano&1*uno)和其他传感器等, ...

  3. nginx中使用srcache&lowbar;nginx模块构建缓存

    nginx中可以将lua嵌,让nginx执行lua脚本,可以处理高并发,非阻塞的处理各种请求,openresty项目中可以使用nignx可以直接构建 srcache_nginx + redis 缓存, ...

  4. 使用PowerDesigner生成Access数据库

    PowerDesigner生成Access数据库 自从使用PD以来一直知道可以支持access但一直没有搞明白如何通过脚本来创建access数据表.在PD的tools里终于找到的答案,具体 文件都在C ...

  5. 三大平衡树(Treap &plus; Splay &plus; SBT)总结&plus;模板[转]

    Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: #include <cstdio> #include <cstring> #i ...

  6. 玩耍Hibernate系列&lpar;二&rpar;--基础知识

    Hibernate思维导图   Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别: 表的主键在内存中对应一个OID对象描述 ...

  7. iOS 基础 第四天&lpar;0809&rpar;

    0809 - 内存管理,只对oc对象生效. alloc.retain.release.retainCount 局部变量是放在栈里面的,oc对象是放在堆里面的.栈里面的内容系统自动回收,而堆里面的内容还 ...

  8. SQLite入门与分析&lpar;七&rpar;---浅谈SQLite的虚拟机

    写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久.最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与 ...

  9. html常用的基本标签

    html的基本标签 一.head部分的标签 1.<!DOCTYPE html>文档类型声明,让浏览器按照html标准对代码进行解释与执行:文档类型声明必不可少,而且,必须在文档最上方:如果 ...

  10. OpenCV——彩色图像转成灰度图像

    // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <iostr ...