如何在 php 上执行 SoapClient

2024-03-29

我是soapclient的新手,我尝试在网上做一些研究,也尝试在soap上编码,但似乎这对我来说仍然不起作用,只是徘徊在这里的任何人都可以指出,也许给我一些例子,我如何实际使用的soapclint从以下Web服务器获取反馈?

POST /webservices/tempconvert.asmx HTTP/1.1
Host: www.w3schools.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/CelsiusToFahrenheit"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <CelsiusToFahrenheit xmlns="http://tempuri.org/">
      <Celsius>string</Celsius>
    </CelsiusToFahrenheit>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <CelsiusToFahrenheitResponse xmlns="http://tempuri.org/">
      <CelsiusToFahrenheitResult>string</CelsiusToFahrenheitResult>
    </CelsiusToFahrenheitResponse>
  </soap:Body>
</soap:Envelope>



<?php
$url = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
$client = new SoapClient($url);


?>

接下来我应该做什么才能得到回复?


你首先必须实例化SoapClient class,就像你做的那样:

$url = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
$client = new SoapClient($url);


那么,你必须调用你想使用的方法-- 方法名称可以在 WSDL 中找到。

例如,我们可以调用一个名为CelsiusToFahrenheit,在此 WebService 中:

$result = $client->CelsiusToFahrenheit( /* PARAMETERS HERE */ );


现在的问题是要知道应该传递哪些参数;如何...

如果您查看 WSDL,您将看到这部分:

<s:element name="CelsiusToFahrenheit">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Celsius" type="s:string" />
    </s:sequence>
  </s:complexType>
</s:element>

这表明应该向此方法传递一个数组,其中包含 1 项,其中包含“Celsius" 作为键,以及要转换为值的值。

这意味着您必须使用这部分 PHP 代码:

$result = $client->CelsiusToFahrenheit(array('Celsius' => '10'));


执行此调用并转储结果:

var_dump($result);

得到这样的输出:

object(stdClass)#2 (1) {
  ["CelsiusToFahrenheitResult"]=>
  string(2) "50"
}


这意味着你必须使用这个:

echo $result->CelsiusToFahrenheitResult . "\n";

为了得到结果值 :

50


注意:当然,这个结果的结构也可以在 WSDL 文件中找到——请参阅CelsiusToFahrenheitResponse部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 php 上执行 SoapClient 的相关文章

随机推荐

  • 我们如何使用 try finally 来实现 Lock.lock 和 Lock.unlock

    考虑以下代码 为了阻止IndexOutOfBoundsException打电话时listIterator 我们使用读取器锁来检索基于索引的迭代器 并在其他地方使用写入器锁进行写入操作stockCodes 请注意 我们没有使用任何锁定机制来迭
  • Scala 宏:获取参数默认值

    我有下一个代码 我想从值中提取默认参数 def extractor T macro extractorImpl T def extractorImpl T c WeakTypeTag c Context first i got a type
  • 使用 goroutine 时 HTTP GET 请求的时间响应

    我有一个简单的代码 可以打印文本文件 url list txt 中列出的每个 URL 的 GET 响应时间 当请求按顺序触发时 返回的时间对应于各个 URL 的预期响应时间 然而 当同时执行相同的代码时 返回的响应时间通常比预期要长 看来开
  • 如何使用 CMake 和 Visual Studio 2010(64 位)构建 MATLAB R2011a(64 位)mex 文件?

    我想写一个CMakeLists txt这样 CMake 编写 Visual Studio 2010 64 位 解决方案文件 以从 C 代码为 MATLAB R2011a 64 位 构建 mex 函数example cxx 我不想使用 MAT
  • PHP MongoDB映射减少数据库断言失败

    我第一次使用 PHP MongoDB 进行 Map Reduce 运行 MapReduce 命令时遇到错误 My code map function emit this topic id re date this date posted r
  • 为什么我的代码没有返回任何内容

    目前对编程还很陌生 正在尝试学习Python 我有这段代码 但我不明白为什么我没有得到返回值 balance 3200 annualInterestRate 0 2 monthlyInterestRate annualInterestRat
  • 如何在perl中的本地范围内访问导入模块中的变量?

    我在创建 perl Moose 模块时陷入困境 我有一个全局 pm 模块 package XYZ require Exporter our ISA qw Exporter EDIT missed this line our EXPORT O
  • Django-MPTT,如何

    嘿 我刚刚安装了 django mptt 库 但我不知道如何让它工作 我已经添加了 from mptt models import MPTTModel class Category MPTTModel slug models SlugFie
  • 这些未定义的检查在行为上是否相同?

    我似乎有不同的方法 严格平等 检查undefined if something undefined if typeof something undefined if something void 0 可能还有其他人 In a 幸福的场景他们
  • Arduino:连接字符串时崩溃和错误

    我尝试将 AES 256 加密的输出连接到一个字符串 将此字符串与从 Android 手机发送的加密字符串进行比较 基本上 连接似乎有效 但在几次运行后会出现错误 不可读的字符 字符串变得更短而不是更长 或崩溃 它是可重现的 重启后在同一点
  • Youtube Iframe:未调用 onYouTubePlayerAPIReady()

    我有一个带有 iframe 的页面 它加载 youtube 视频 iframe 的 src 在运行时修改 我基于 Rob W 在该主题的不同答案中提供的代码 然后 当加载 iframe 时 执行以下代码 browser load funct
  • 每行的快速列洗牌 numpy

    我有一个包含行的长度超过 10 000 000 的大型数组 我需要单独洗牌这些行 例如 1 2 3 1 2 3 1 2 3 1 2 3 to 3 1 2 2 1 3 1 3 2 1 2 3 我目前正在使用 map numpy random
  • 在 UITextfield 中放置“清除按钮”

    有没有办法定位清除按钮 我想将其向下移动一点 使其与文本输入处于同一水平 有任何想法吗 我的文本字段已经是处理效果的另一个类的子类 包含 clearButtonRect 函数不起作用 IBDesignable open class Hosh
  • 有人可以解释一下这个 C# lambda 语法吗?

    我最近发现了一个静态方法 声明为 public class Foo public static Func
  • SQL Server 排序规则

    我正在读的书上说 SQL Server 支持两种字符数据类型 常规和 Unicode 常规数据类型包括 CHAR 和 VARCHAR Unicode 数据类型包括 NCHAR 和 NVARCHAR 不同之处在于 常规字符每个字符使用一个字节
  • Sinatra 是多线程的吗?

    Sinatra 是多线程的吗 我在其他地方读到 sinatra 默认情况下是多线程的 这意味着什么 考虑这个例子 get multithread do t1 Thread new puts sleeping for 10 sec sleep
  • 与没有 Ajax 或 jQuery on Rails 的情况类似/不同

    我正在尝试实现一个简单的类似 不同函数 我在这里看到的所有示例似乎都适用于 ajax 或 jquery 我还是一个初学者 我也不完全理解 我只想要一个简单的解决方案 我的想法是 我有书 我有用户 用户可以喜欢书籍 所以我通过 Like 模型
  • Rstudio 和闪亮服务器代理设置

    我已经在我的 ubuntu14 上安装了 RStudio Server v0 98 507 和 Shiny Server v1 1 0 10000 我的 rstudio 代理设置已打开nginx 默认值 location rstudio r
  • Excel UDF 加权 RANDBETWEEN()

    好吧 不是真的RANDBETWEEN 我正在尝试创建一个 UDF 来返回数组中数字的索引 其中数字越大 被选择的可能性就越大 我知道如何将概率分配给工作表中的随机数 即使用MATCH 关于概率的总和 有很多东西可以解释这一点 但我想要一个
  • 如何在 php 上执行 SoapClient

    我是soapclient的新手 我尝试在网上做一些研究 也尝试在soap上编码 但似乎这对我来说仍然不起作用 只是徘徊在这里的任何人都可以指出 也许给我一些例子 我如何实际使用的soapclint从以下Web服务器获取反馈 POST web