SoapClient使用注意事项:

第一要加上 cache_wsdl参数,以防服务器调用的是缓存的wsdl文件

然后是参数传递,如果是使用PHP自己写的WebService,参数传递按正常方式即可

1、$client->FunctionName($param1,$param2);

2、$client->__soapCall("FunctionName",array($param1,$param2));

3、$client->__soapCall("FunctionName",array("param1"=>$param1,"param2"=>$param2));

而如果是调用Java或者C#写的WebService,参数应该使用二维数组传递,否则Java或C#会接受不到PHP提交的参数

try {
            $client = new SoapClient("http://www.xxx.com/api?wsdl", array('cache_wsdl' => 0));
            $xml = "
                <Xml>
                <Data>
                    ...
                </Data>
            </Xml>";

//            print_r($client->__getFunctions());
//            print_r($client->__getTypes());

//           $client->__soapCall('接口函数名称', array(array("参数名" => 参数值)));

// 针对Java或者C#做兼容处理,使用二维数组,如果是PHP写的webservice,可直接使用$client->GetData($xml);
            print_r($client->__soapCall('GetData', array(array("xml" => $xml))));
        } catch (SOAPFault $e) {
            print $e;
        }

鉴权:

如果WebService使用HTTP认证:

如果你使用的是NuSOAP的话,大致代码如下:

$client = new nusoap_client("http://{$login}@{$password}:www.domain.com/wsdl", true);
$client->setCredentials($login, $password);

如果你使用的是PHP内置的SOAP扩展的话:

$client = new SoapClient("http://www.domain.com/wsdl", array(
    'login'    => $login,
    'password' => $password
));

如果WebService使用SOAP Header做验证,这个可以通过PHP内建SOAP扩展的SoapHeader来做,我就不多说了。

PHP SoapClient 调用与鉴权,以及对Java和C# 的webservice的兼容处理的更多相关文章

  1. spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法

    spring boot / cloud (十四) 微服务间远程服务调用的认证和鉴权的思考和设计,以及restFul风格的url匹配拦截方法 前言 本篇接着<spring boot / cloud ...

  2. 基于MD5+RSA算法实现接口调用防扯皮级鉴权

    概述 最近项目中需要对第三方开发接口调用,考虑了一下,准备采用MD5+RSA算对请求数据进行签名,来达到请求鉴权,过滤非法请求的目标. 数字签名采用MD5+RSA算法实现.RSA私钥要严格保密并提供安 ...

  3. ApiAuthValue鉴权机制总结

    一.背景介绍 1.自动化的配置工具autoconfig介绍 项目开发过程中,有些配置会随着运行环境的变化而各不相同.如jdbc驱动的配置,在开发环境可能链接到开发本地的数据库,测试环境则有一套测试专用 ...

  4. apigw鉴权分析(1-4)新浪微博开放平台 - 鉴权分析

    一.访问入口 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E 微博开放接口的调用,如 ...

  5. apigw鉴权分析(1-3)百度 AI - 鉴权方式分析

    http://ai.baidu.com/docs#/Begin/top 一.访问入口 二.鉴权方式分析 1.鉴权认证方式一 - access_token - 针对HTTP API调用者 2.鉴权认证方 ...

  6. apigw鉴权分析(1-2)腾讯开放平台 - 鉴权分析

    一.访问入口 http://wiki.open.qq.com/wiki/%E8%85%BE%E8%AE%AF%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E7%AC%AC% ...

  7. apigw鉴权分析(1-1)阿里数加 - 鉴权方式分析

    一.访问方式 1.访问阿里云首页 https://www.aliyun.com/?utm_medium=text&utm_source=bdbrand&utm_campaign=bdb ...

  8. [转]Node.js 应用:Koa2 使用 JWT 进行鉴权

    本文转自:https://www.cnblogs.com/linxin/p/9491342.html 前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行 ...

  9. Node.js 应用:Koa2 使用 JWT 进行鉴权

    前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行保护,那么别人就可以很容易地获取并调用这些 API 进行操作.那么服务器端要如何进行鉴权呢? Json ...

随机推荐

  1. gtest 参数化

    前言: 在测试用例中,我们时常需要传给被测函数不同的值,gtest为我们提供了简便的方法,可以使我们能够灵活的进行参数化测试. 步骤: 1.创建一个类,继承testing::TestWithParam ...

  2. Int和String互转的方法

    Java 中int.String的类型转换   int -> String int i=12345;String s="";第一种方法:s=i+"";第二 ...

  3. Centos7快速安装docker

    偶然间发现,docker的安装好容易啊 系统环境:centos7.3 yum源: docker:https://mirrors.aliyun.com/docker-ce/linux/centos/do ...

  4. IIS7 伪静态 web.config 配置方法

    <rule name="Redirect" stopProcessing="true"> <match url=".*" ...

  5. Cheat Engine(简称CE)初体验

    经常玩一些单机游戏,如CS.植物大战僵尸,,这几天刚好网上看到有人用CE修改内存,直接修改内存数据. 之前没有玩过此类东西,激动不已,于是自己也动手写了几行代码, 实现了CS子弹无限制,血量无限,阳光 ...

  6. oracle 远程连接

    oracle中如何修改用户名和密码   1.以Windows操作系统为例,打开命令提示符,输入命令sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DB ...

  7. 内存问题-JVM调优思路

    通常,内存的问题就是 GC 的问题,因为 Java 的内存由 GC 管理.有2种情况,一种是内存溢出了,一种是内存没有溢出,但 GC 不健康. 内存溢出的情况可以通过加上 -XX:+HeapDumpO ...

  8. LeetCode——17. Letter Combinations of a Phone Number

    一.题目链接: https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 二.题目大意: 给定一段数字字符串,其中每个数 ...

  9. URLConnection(互联网)

    一.urlconnection连接Servlet 1:> URL请求的类别:           分为二类,GET与POST请求.二者的区别在于:                         ...

  10. [UE4]虚幻引擎的C++环境安装

    一.一般使用VS2017开发 二.需要勾选“使用C++的游戏开发”