soap - 如何使用 zend-soap 从 SOAP 请求中获取响应?
问题描述
我一直在花时间解决问题。我有一个端点,我想发送一些数据并接收响应。
我在网上看了一下,我看到 Zend\Soap\Server 用于构建方法,而 Zend\Soap\Client 可以使用这些方法。我希望有人解释在这些方法中要写什么,以及这对获得响应有何帮助。
$client = new Client($this->wsdl, array('soap_version' => SOAP_1_1));
现在我们可以 $client->SOMEMETHOD();
我的问题是:“我从哪里得到这个方法?”、“方法会做什么?”和“我如何使用它?”
解决方案
SOAP 短底座
SOAP 允许请求在线服务。(用作客户代码)例如,您可以在产品上查询亚马逊,了解其价格等。
SOAP 以两种不同的方式工作:
方式一:wdsl模式
当您创建到 SOAP 客户端的连接时,您必须提供将提供 XML 文件的链接:wdsl
示例:在浏览器中输入: http ://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl
恭喜:您看到(发现)查询亚马逊的方式!
这个 XML 文件告诉您可以要求什么:价格、产品信息、搜索等……:这些是路线。
对于每个路由(每个可能的查询),您必须提供的参数,这些参数的有效性检查:例如:路由 = 搜索文章,参数 1 = 文章名称,参数类型 = 字符串等...
$client = new Client($this->wsdl, array( 'soap_version' => SOAP_1_1 ) )
创建一个客户端对象:
$this->wsdl一个指向 xml 文件(发现部分)的链接,
它是一个 URI 字符串:示例:“ http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl ”
array( 'soap_version' => SOAP_1_1 ) = 我使用 SOAP 版本 xx,您可以在此数组中添加更多选项。
方式2:非wdsl模式
您不提供 wsdl 链接或文件...但您必须知道如何处理请求和响应
深度学习
在 google 上搜索 SOAP 教程,有用于测试目的的在线请求者等......然后在 zend 中使用它
推荐阅读
- java - 如何解决错误:找不到符号 message.reply(...); Vertx 点对点
- python - 调用 plt.show() 后如何保持先前的情节而不清除图形而不简单地重复调用?
- swift - iOS:如何对具有协议类型变量的模型类使用可解码
- ruby - 学习 Ruby 的艰难方式练习 35
- javascript - Firebase 存储下载图像 CORS 错误 [JavaScript]
- python - a=a*7 和 a*= 7 有什么区别
- django - Django Rest_framework Apiview 显示项目
- centos - Podman 图像未使用 podman 图像 ls 显示
- gremlin - Gremlin Java 用新属性替换旧的顶点属性
- android - Android WorkManager 检索所有请求