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. Java基础随记-不定时更新

    一.hashMap与hashTable与ConcurrentHashMap: 1.HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary类.不过它们都同时实现 ...

  2. git的基本应用(一)

    Git常用的命令: mkdir  文件夹名称           创建文件夹 git  init                     将文件夹交个git管理 ls -ah              ...

  3. Flink神秘工具lib

    Flink里面有一个神坑,叫做FI坑.其实只是使用Fi的时候被暴露出来.但是,杀不死你的,终将使你更加强大. Flink集群有一个lib文件件,里面比较happy,可以放各种jar:这样,client ...

  4. android studio 升级到3.3.1后,提示程序包不存在

    android studio 升级到3.3.1后,提示程序包不存在 原因 主Module--A 引用了其他Moduel--B里的jar库, 只需要把B的dependencies改成如下(implent ...

  5. [ZZ] 如何在多版本anaconda python环境下转换spyder

    https://www.zhihu.com/people/alexwhu/answers 使用anaconda的话,可以参考以下步骤: 1.打开anaconda navigator,选择左侧的环境菜单 ...

  6. upstream timed out (10060: A connection attempt failed because the connected party did not properly respond

    openresty 错误日志报错内容: // :: [error] #: * upstream timed : A connection attempt failed because the conn ...

  7. CentOS7.4下部署hadoop3.1.1

    CentOS7.4下部署hadoop3.1.1 契机 由于工作原因要部署hadoop的集群,习惯使用最新的稳定版本2018年的时候由于时间紧破部署了2.7.2版本,最新由于又要部署有研究了一下3.x的 ...

  8. Java tomcat Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost

    关于 下面问题是因为(8005, 8080, 8009) 被原tomcat占用了. Several ports (8005, 8080, 8009) required by Tomcat v9.0 S ...

  9. Linux基础之常用命令整理(二)

    Linux系统启动流程 bios(找到启动介质) --> mbr(找到boot loader  512B 446引导信息 64分区信息 2 标志位 ) -->grub(选择操作系统或者内核 ...

  10. 基于墨刀实现的购物app

    在观察研究购物app后 仔细分析总结了几个基础功能,实现如下的界面: 主界面:购物app的推荐界面,提供各式的样品,将整个app的多种功能进行展示. 推荐分类:根据用户浏览的宝贝,对用户进行合理推荐. ...