0

私の会社には、PHPのcurlを使用してSOAPプロトコルを介していくつかのWebサービスに定期的に接続するソフトウェアがあります。時々これは失敗し、システム全体が非常に不安定になります。curlがこれらのWebサービスと通信するメインツールであることに少し驚いていました。ほとんどの言語(PHPやPythonを含む)に堅牢で成熟した高レベルのライブラリが存在し、curlは比較的低レベルであり、エラーが発生しないためです。取り扱い。私は正しいですか?SOAPを介した通信に最適なソリューションは何ですか?従うことができるエンタープライズ標準はありますか?助けてください。

4

1 に答える 1

0

SOAP クライアントでビルドされた PHP はすでに非常に堅牢であり、一般的に必要とされるものの多くを抽象化しています。

$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 サービスをセットアップする必要がある場合は、wsdl に基づいて Web サービスを自動的に構築する Zend Framework のスタンドアロン コンポーネントである Zend_Soap を使用することをお勧めします。PHP の SoapClient の上にラッパーもありますが、これは主に命名規則とコーディング規則を Zend Framework に収束させるために使用され、多くの追加機能は提供しません。

ただし、非常に具体的な要件がある場合は、Curl で問題ありません。時々失敗し、システムが不安定な場合は、curl の問題ではありません。サービスまたはシステムの構成ミスである可能性があります。

基本的に、SoapClient は標準に基づいて XML を構築します。(何らかの理由で) 自分で XML を作成する場合、curl は問題ありません。

于 2012-04-25T10:01:41.690 に答える