ホームページ  >  記事  >  バックエンド開発  >  phpのsoapメソッドを呼び出す方法

phpのsoapメソッドを呼び出す方法

藏色散人
藏色散人オリジナル
2021-11-30 11:27:163597ブラウズ

php soap メソッド呼び出し: 1. php.ini ファイル内の「php_soap.dll」を開きます; 2. Web サービスのメソッド、パラメーター、およびデータ型をクエリします; 3. 開発ドキュメントに従って XML 文字列を結合します; 4. ブラウザでコードを実行するだけです。

phpのsoapメソッドを呼び出す方法

#phpのsoapメソッドを呼び出す方法は?

ドッキングを実現するための php での SOAP 呼び出しの実装

PHP5 での SOAP 呼び出しの実装プロセス

この記事では、ある企業の iPhone 6 携帯電話予約インターフェース開発を例に取り上げます。 PHP5 プロセスでの SOAP 呼び出しの実装を紹介します。

1. 基本概念

SOAP (Simple Object Access Protocol) ) シンプル オブジェクト アクセス プロトコルは、分散環境または分散環境で情報を交換するための単純なプロトコルです。XML ベースのプロトコルです。次の 4 つの部分で構成されます: SOAP エンベロープ (エンベロープ)。エンベロープは、メッセージのコンテンツの記述を定義します。何を、誰が送信し、誰が受け入れて処理する必要があるか、および処理方法のフレームワーク、SOAP エンコーディング ルール(エンコーディング) ルール)、アプリケーションが使用する必要があるデータ型のインスタンスを表すために使用される、SOAP RPC 表現 (RPC) 表現)は、リモート プロシージャの呼び出しと応答のプロトコルを表し、SOAP バインディングは、基礎となるプロトコルを使用して情報を交換します。

WSDL (Web サービス記述言語) は XML を記述します。 Web サービスの標準 XML 形式である WSDL は、Ariba、Intel、IBM、Microsoft などの開発者によって提案されています。これは、特定の言語に依存しない抽象的な方法で、特定の Web サービスによって送受信される関連する操作とメッセージを定義します。その定義上、WSDL をオブジェクト インターフェイス定義言語として考えることはまだできません。たとえば、CORBA や COM などのアプリケーション アーキテクチャではオブジェクト インターフェイス定義言語が使用されます。 WSDL はプロトコル中立性を保ちますが、SOAP へのバインディングのサポートが組み込まれているため、SOAP との切り離せないリンクが確立されます。したがって、この記事で WSDL について説明するときは、通信プロトコルとして SOAP を使用していることを前提とします。

SOAP と WSDL は Web サービスの 2 つの主要な標準ですが、必ずしも接続されているわけではなく、独立して使用することもできます。それらの間の関係は、HTTP と Html の関係に似ています。前者はプロトコル、後者は Web サーバーの記述です。

2. PHP5 での設定

php 設定ファイル php.ini で、

extension=php_soap.dll

を見つけて、前にある; 記号を削除して、Web サービスを再起動します

3. Web サービスのメソッド、パラメータ、およびデータ型をクエリする

地方の電気通信会社の注文入力インターフェイスは http://***.******.com/services です。 / AcceptedBusiness?wsdl
SoapClient の __geunctions() および __getTypes() メソッドを使用して、インターフェイスのメソッド、パラメーター、およびデータ型を表示します。
__getFunctions にリストされているインターフェイスのみが、soap によって呼び出すことができます。
ルート ディレクトリにコード soap.php を作成します。

<?php
header("content-type:text/html;charset=utf-8");try {    $client = new SoapClient("http://***.******.com/services/AcceptedBusiness?wsdl");    print_r($client->__getFunctions());    print_r($client->__getTypes());  
} catch (SOAPFault $e) {    print $e;
}
?>

ブラウザで実行した後: http://localhost/soap.php、返される結果は次のとおりです

Array(
    [0] => ArrayOf_xsd_anyType introduceAcceptedBusiness(string $c3, string $c4, string $linkman, string $linknum, string $num, string $idcard, string $remark, string $address)
    [1] => ArrayOf_xsd_anyType introduceAcceptedBusinessByAiZhuangWei(string $subname, string $linkphone, string $idcard, string $address, string $businesstype, string $marketcode, string $surveycode, string $commanager, string $commanagerphone, string $bendiwang, string $fenju, string $zhiju, string $remark)
    [2] => string introduceAcceptedBusinessByStandardInterface(string $xmlStr)
    [3] => string introduceAcceptedBusinessByCallOut(string $xmlStr)
    [4] => string introduceAcceptedBusinessByYddj(string $xmlParam)
    [5] => ArrayOf_xsd_anyType queryAcceptedBusinessByAiZhuangWei(string $surveycode, string $starttime, string $endtime)
    [6] => string queryCallOutOrderByConfig(string $xmlParam)
)Array(
    [0] => anyType ArrayOf_xsd_anyType[]
)

メソッドは、introducedAcceptedBusinessByStandardInterface (文字列 $xmlStr) は、開発ドキュメントで説明されている使用されるインターフェイスになります。パラメータは XML 文字列

です。さらに、一部のインターフェイスでは SoapHeader 認証について言及していますが、これには __setSoapHeaders メソッドを追加する必要があります。具体的には http://php.net/manual/zh/soapclient.setsoapheaders.php


4 を表示できます。注文を送信します

この手順では、次に従って XML 文字列を結合する必要があります。を開発ドキュメントに追加し、introducedAcceptedBusinessByStandardInterface のパラメータとして
を渡して、次の内容の acceptbusiness.php を作成します。

<?php
header("content-type:text/html;charset=utf-8");try {    $client = new SoapClient(&#39;http://***.*******.com/services/AcceptedBusiness?wsdl&#39;);    $xml = "
    <?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39; ?>
    <PACKAGE>
      <C3>**电信</C3>
      <C4></C4>
      <LINKMAN>张三</LINKMAN>
      <LINKNUM>13412341234</LINKNUM>
      <LINKADDRESS>广东深圳</LINKADDRESS>
      <REMARK>iPhone 6</REMARK>
      <CHANNEL></CHANNEL>
      <GRIDCODE>1111111111111111111111111111111</GRIDCODE>
      <AGENTCODE>2111</AGENTCODE>
      <KEY>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</KEY>
    </PACKAGE>
  ";    $return = $client->introduceAcceptedBusinessByStandardInterface($xml);    print_r($return);
} catch (SOAPFault $e) {    print_r(&#39;Exception:&#39;.$e);
}
?>

ブラウザで実行すると、

<?xml version="1.0" encoding="UTF-8"?>
<PACKAGE>
    <STATUS>0</STATUS>
    <REASON>入单成功!</REASON>
    <ORDERSEQ>2014100905523549742</ORDERSEQ>
</PACKAGE>

が返されます。学習: 「PHP ビデオ チュートリアル >>

以上がphpのsoapメソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。