You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP Curl调用Apache上Delphi构建的SOAP服务echoDouble函数?

Delphi SOAP服务PHP Curl调用地址及实现方案

正确调用地址说明

你不需要在URL中指定方法名或wsdl路径,直接使用服务的入口地址即可:
http://127.0.0.1:81/xyz/mod_webbroker.dll
SOAP请求是通过POST方式向这个地址发送符合WSDL规范的XML请求体,而非通过URL路径指定方法。

具体PHP Curl实现步骤

  1. 获取WSDL关键信息
    访问http://127.0.0.1:81/xyz/mod_webbroker.dll?wsdl,找到:

    • targetNamespace属性值(即接口命名空间,通常为http://tempuri.org/或自定义值)
    • echoDouble方法的参数定义(比如参数名是否为Value)
  2. 构造SOAP请求XML
    根据WSDL信息构造请求体,示例如下:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://tempuri.org/">
  <soap:Body>
    <ns:echoDouble>
      <ns:Value>3.14</ns:Value> <!-- 替换为实际要传递的数值 -->
    </ns:echoDouble>
  </soap:Body>
</soap:Envelope>
  1. PHP Curl代码实现
<?php
// SOAP服务入口地址
$serviceUrl = 'http://127.0.0.1:81/xyz/mod_webbroker.dll';

// 从WSDL中获取的命名空间
$namespace = 'http://tempuri.org/';

// 构造SOAP请求XML
$requestXml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="{$namespace}">
  <soap:Body>
    <ns:echoDouble>
      <ns:Value>3.14</ns:Value>
    </ns:echoDouble>
  </soap:Body>
</soap:Envelope>
XML;

// 初始化Curl
$curl = curl_init($serviceUrl);

// 设置Curl请求参数
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $requestXml,
    CURLOPT_HTTPHEADER => [
        'Content-Type: text/xml; charset=utf-8',
        'SOAPAction: "' . $namespace . 'echoDouble"' // 匹配命名空间+方法名
    ],
    CURLOPT_RETURNTRANSFER => true
]);

// 执行请求并处理响应
$response = curl_exec($curl);
if (curl_errno($curl)) {
    die('Curl请求错误: ' . curl_error($curl));
}

// 输出或解析响应XML
echo $response;

// 关闭Curl
curl_close($curl);
?>

关键注意事项

  • 命名空间必须与WSDL中的targetNamespace完全一致,不能写错
  • SOAPAction头的格式要正确,若WSDL中operation定义了soapAction属性,直接使用该值即可
  • 请求XML中的参数名、层级结构必须严格匹配WSDL里的定义

内容的提问来源于stack exchange,提问作者lorife

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:45:26