Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用卷曲肥皂是一种糟糕的做法吗?_Php_Python_Soap_Curl - Fatal编程技术网

Php 使用卷曲肥皂是一种糟糕的做法吗?

Php 使用卷曲肥皂是一种糟糕的做法吗?,php,python,soap,curl,Php,Python,Soap,Curl,我公司有一个软件使用PHP中的curl,通过SOAP协议定期与一些Web服务连接。有时,这种方法会失败,整个系统非常不稳定。看到curl作为与这些web服务对话的主要工具,我有点惊讶,因为我认为大多数语言(包括PHP和python)都有健壮成熟的高级库,而curl的级别相对较低,不提供任何错误处理。我说得对吗?通过SOAP进行通信的最佳解决方案是什么?是否有我可以遵循的企业标准?请提供帮助。PHPs内置SOAP客户端已经非常健壮,并提取了许多常用的内容: $this->soapClient

我公司有一个软件使用PHP中的curl,通过SOAP协议定期与一些Web服务连接。有时,这种方法会失败,整个系统非常不稳定。看到curl作为与这些web服务对话的主要工具,我有点惊讶,因为我认为大多数语言(包括PHP和python)都有健壮成熟的高级库,而curl的级别相对较低,不提供任何错误处理。我说得对吗?通过SOAP进行通信的最佳解决方案是什么?是否有我可以遵循的企业标准?请提供帮助。

PHPs内置SOAP客户端已经非常健壮,并提取了许多常用的内容:

$this->soapClient = new SoapClient($wsdl_url);
// What interface is available, which function can you call?
var_dump($this->soapClient->__getFunctions());

// Call
$result = $this->soapClient->someMethodExposedByTheApi();

// Soap Elements (Tags in the XML) are available as properties:
echo $result->someProperty;

// Nested Tags are available as object chain:
echo $result->someNestedTags->nestedTag;
我无法想象这怎么会更简单

如果需要设置SOAP服务,您可能希望使用Zend_SOAP,Zend框架中的一个独立组件,它可以自动基于wsdl构建Web服务。它在PHP的SoapClient之上还有一个包装器,但它主要用于将命名和编码约定聚合到Zend框架,并且没有提供太多额外的功能

但是:如果您有非常具体的要求,卷曲是可以的。如果它不时出现故障,并且您的系统不稳定,那么这就不是旋度问题。这可能是服务或系统配置错误


基本上,SoapClient基于标准构建XML。如果您为自己构建XML(无论出于何种原因),curl就可以了。

只需使用
soap
扩展?