【问题标题】:PHP SOAP client send XMLPHP SOAP 客户端发送 XML
【发布时间】:2012-02-24 12:48:54
【问题描述】:

我正在尝试使用 PHP 创建 Web 服务。以下是我的代码-

网络服务器 -

require 'inventory_functions.php';

ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
$server = new SoapServer("inventory.wsdl");
$server->addFunction("getItemCount");
$server->handle();

Inventory_functions.php -

function getItemCount($upc){
    //in reality, this data would be coming from a database
    $items = array('12345'=>5,'19283'=>100,'23489'=>'234');
    return $items[$upc];
}

我的客户测试 -

ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
$client = new SoapClient("http://www.xxx.co.uk/service/inventory.wsdl");
$return = $client->getItemName('12345');
print_r($return);

当我运行它时,一切正常。数字“5”将在我的浏览器中输出。我真正需要的是一些关于如何通过 XML 将数据发送到 SOAP 服务器的帮助,我会将这些数据添加到 MySQL。

如何通过客户端测试发送 XML?

谢谢

【问题讨论】:

    标签: php xml web-services soap


    【解决方案1】:

    我不确定我是否理解您的问题。您想知道应该为您的 Web 服务提供什么 XML 输入,以便发送例如值“5”?

    为此,您应该首先分析生成的 wsdl 文件,然后,根据您为客户端选择的编程语言,您可以生成一个客户端存根来与 Web 服务本身进行交互。

    或者,您可以使用 XML 直接向 Web 服务发出 HTTP POST(应该看起来像这样):

    POST /service/mywebservice.php HTTP/1.1
    Host: www.xxx.co.uk
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "<your.webservice.namespace>/getItemCount"
    
    <?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>
        <getItemCount xmlns="<your.webservice.namespace>">
          <value>5</value>
        </getItemCount>
      </soap:Body>
    </soap:Envelope>
    

    【讨论】:

    • 我现在明白您真正想要的是将 XML 发送到 Web 服务。为了做到这一点,您不能简单地更改 getItemCount PHP 函数以接收字符串作为输入吗?如果您这样做,则客户端可以将 XML 作为字符串发送到函数 getItemCount。为了避免在将 XML 字符串嵌入 Soap 请求时出现混乱,您可以在发送之前将原始 XML 转换为 base64 字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多