PHP Soap调用.net webservice丢失第一个参数

简介: 这两天使用php调用.net做的webservice,一直不成功。$output = $soap->__soapCall("sds", array(new SoapParam("192.

这两天使用php调用.net做的webservice,一直不成功。

$output = $soap->__soapCall("sds", array(new SoapParam("192.168.0.100", "ip"), new SoapParam("abcdefg", "input")));
经抓包后,发现丢了第一个参数:

POST /PostLiftData.asmx HTTP/1.1
Host: 192.168.0.113:9001
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.8
Content-Type: application/soap+xml; charset=utf-8; action="http://tempuri.org/sds"
Content-Length: 206

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://tempuri.org/"><env:Body><ns1:sds/><input>abcdefg</input></env:Body></env:Envelope>
要改成以下这个,才能完成我想发送的两个参数:input, ip。

$output = $soap->__soapCall("sds", array('', new SoapParam("192.168.0.100", "ip"), new SoapParam("abcdefg", "input")));
结果:

POST /PostLiftData.asmx HTTP/1.1
Host: 192.168.0.113:9001
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.8
Content-Type: application/soap+xml; charset=utf-8; action="http://tempuri.org/sds"
Content-Length: 228

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://tempuri.org/"><env:Body><ns1:sds/><ip>192.168.0.100</ip><input>abcdefg</input></env:Body></env:Envelope>


------------------------------------------------------------------------------

发现了问题,原来php调用.net的SOAP是需要这样子调用:

$params = array('ip'=>"192.168.0.100", 'input'=>"abcdefg");
$output = $soap->__soapCall("sds", array("parameters" => $params));

那么,如果是调用java的和Php的呢?是否同样适用?







相关文章
|
8天前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
189 2
|
8天前
|
机器学习/深度学习 存储 编解码
多任务学习新篇章 | EMA-Net利用Cross-Task Affinity实现参数高效的高性能预测
多任务学习新篇章 | EMA-Net利用Cross-Task Affinity实现参数高效的高性能预测
59 0
|
8天前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
|
8天前
|
程序员 数据库
VB.NET—Bug调试(参数话查询、附近语法错误)
VB.NET—Bug调试(参数话查询、附近语法错误)
29 0
|
7月前
|
前端开发 JavaScript
.net core 前端传递参数有值 后端接收到的数据却是null
1、问题分析 在做接口测试时,偶然出现了前端输出有值,但是后端断点调试时却出现接收参数总是为null的情况 2、解决办法 前端打印log,看前端的每一个传值的数据类型,与后端请求参数类进行认真的一一比对 小技巧: ① 直接打印调用接口的传参值的数据类型,例如 console.log(type of this.form.name) --string console.log(type of this.form.age) --number 打印的数据类型与后端接口的参数类比对,查出不对应的类型 ② 关于非必填的值,默认传值可能出现空字符串(' ')、NaN值(Not a Number
115 0
|
10月前
|
前端开发
解决.NET Core Ajax请求后台传送参数过大请求失败问题
解决.NET Core Ajax请求后台传送参数过大请求失败问题
|
开发框架 .NET Apache
301重定向代码合集(iis,asp,php,asp.net,apache)
301重定向代码合集(iis,asp,php,asp.net,apache)
282 0
|
XML API 数据格式
十九、.net core使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问webservice接口
使用SoapCore实现在.net core平台下开发webservice;以及使用HttpClientFactory动态访问webservice。首先,需要在包项目下面引用SoapCore:
838 0
十九、.net core使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问webservice接口
|
PHP Android开发 Python
php调用adb命令,php使用adb控制安卓手机
php调用adb命令,php使用adb控制安卓手机
376 0