如何通过 Curl 和 PHP 发送 SOAP XML?

2024-02-28

这已经困扰我好几天了;我正在尝试通过 Curl 发送 SOAP 帖子,但我总是收到“无法连接到主机”错误,但是,我真的不知道如何解决。

我有一个 ASP 版本,它可以在相同的 URL 和数据下正常工作。我认为这只是 PHP/Curl 的事情。

我目前有以下代码(CURLOPT_POSTFIELDSdata 是有效的 SOAP 信封字符串):

$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL,            "https://xxx.yyy.com:517/zzz.asmx" );
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT,        10);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST,           true );            
curl_setopt($soap_do, CURLOPT_POSTFIELDS,     '<soap:Envelope>...</soap:Envelope>'); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER,     array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen('<soap:Envelope>...</soap:Envelope>') ));

if(curl_exec($soap_do) === false)
{                
    $err = 'Curl error: ' . curl_error($soap_do);
    curl_close($soap_do);
    return $err;
}
else
{
    curl_close($soap_do); 
    return 'Operation completed without any errors';
}

那么有什么想法为什么它总是出错吗?

ASP版本运行良好!代码是:

Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST","https://xxx.yyy.com:517/zzz.asmx"
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.Send('<soap:Envelope>...</soap:Envelope>')

非常感谢朋友,你的代码对我有用。

这是代码:

$soap_do = curl_init(); 
curl_setopt($soap_do, CURLOPT_URL,            $url );   
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10); 
curl_setopt($soap_do, CURLOPT_TIMEOUT,        10); 
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);  
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($soap_do, CURLOPT_POST,           true ); 
curl_setopt($soap_do, CURLOPT_POSTFIELDS,    $post_string); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER,     array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($post_string) )); 
curl_setopt($soap_do, CURLOPT_USERPWD, $user . ":" . $password);

$result = curl_exec($soap_do);
$err = curl_error($soap_do);  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Curl 和 PHP 发送 SOAP XML? 的相关文章

随机推荐

  • 什么是 procs 和 lambda?实际例子请[重复]

    这个问题在这里已经有答案了 可能的重复 何时使用 lambda 何时使用 Proc new https stackoverflow com questions 626 when to use lambda when to use proc
  • Magento 致命错误:在非对象上调用成员函数 getSortedChildren()

    我已经安装了 Magento CE 1 9 版本 在调用主页上的 Catalog 后出现错误 问题似乎与列表 phtml 错误 致命错误 调用成员函数getSortedChildren 在 中的非对象 mageinc app design
  • 我是否滥用 UIViewController 子类化?

    在试图弄清楚为什么 viewWillAppear 没有在我的应用程序中被调用时 我发现了我对 UIViewController 子类的预期用途可能存在的严重误解 根据下面的帖子使用 addSubView 时 viewWillAppear 不
  • 使用 iCloud Apple ID 匿名登录应用程序

    根据这个CloudKit 概述 https developer apple com icloud index html CloudKit 还使您的用户能够使用其 iCloud Apple ID 匿名登录您的应用程序 而无需共享其个人信息 我
  • mysql 区分大小写吗?

    I wrote select from mytable 在我的 Windows 上的 ASP net 应用程序中 它运行良好 在 Linux 上它抱怨我使用mytable代替MyTable 在处理表名时 如何将 Windows 上的 MyS
  • 用于分配用户角色的首选数据库设计方法? (帽子与团体)

    我有一个中等规模的 MySQL 数据库 其中有一个主要的 人员 表 其中包含与剧院和戏剧学校相关的每个人的基本联系信息 我负责维护和开发许多 Web 应用程序 有些人只是联系人 也就是说 他们的 人 表记录是我们需要存储的有关他们的所有信息
  • 如何在 mod_rewrite 中设置可选参数

    我在一个新项目中 正在设计 URL 结构 问题是我希望 URL 看起来像这样 category 23 keyword 5 正常页面是 search php q keyword cat 23 page 5所以我的问题是 cat and pag
  • 不同类别因素的欧几里得距离按组迭代

    更新 Rui 建议的答案很棒并且可以正常工作 然而 当我在大约 700 万个观察值 我的实际数据集 上运行它时 R 陷入了计算块 我使用的是具有 64GB RAM 的机器 任何其他解决方案将不胜感激 我有一个专利数据框 其中包含公司 申请年
  • 首先按 null 排序,然后按其他变量排序

    这是我现在的代码 SELECT id number FROM Media WHERE user 10 ORDER BY id number 但我希望它看起来像 SELECT id number FROM Media WHERE user 1
  • 如何隐藏 F# 中的方法?

    我目前正在 F 中实现 Spec 框架 我想隐藏我的 Equals GetHashCode 等方法should类型 以便 API 不会因这些而混乱 我知道在 C 中 这是通过让类实现如下接口来完成的 using System using S
  • 在 Nuget 包中公开 Azure Functions

    我们希望在我们的不止一种产品中实现可重用的功能 我想做的是 创建一个包含一个或多个 Azure Functions 附加了 FunctionNameAttribute 的静态方法 的 C 项目 将此项目转为NuGet包 在 Azure Fu
  • 从前序和后序列表重建树

    考虑这样一种情况 您有两个节点列表 您只知道其中一个是某棵树的前序遍历的表示 另一个是同一棵树的后序遍历的表示 我相信可以从这两个列表精确地重建树 并且我认为我有一个算法可以做到这一点 但尚未证明 由于这将是硕士项目的一部分 我需要绝对确定
  • Node Mongo Native - 如何判断游标何时耗尽?

    的文档节点 mongodb nativecollection find 功能 https github com mongodb node mongodb native find说它创建一个游标对象 该对象延迟返回匹配的文档 此外 游标的基本
  • tkinter 小部件的 cnf 参数

    所以 我正在研究代码here http svn python org projects python branches pep 0384 Lib tkinter init py在每个班级 几乎 我都看到一个争论cnf 到构造函数 但除非我错
  • org-mode取消\hypersetup后有什么影响?

    我用自己的序言在 org 模式下制作 pdf 但生成的 PDF 或 tex 文件始终显示以下信息 format hypersetup n pdfkeywords s n pdfsubject s n pdfcreator s n org e
  • 如何创建具有延迟的可观察对象

    Question 出于测试目的 我正在创建Observable替换实际 http 调用返回的可观察对象的对象Http 我的可观察对象是使用以下代码创建的 fakeObservable Observable create obs gt obs
  • 什么是 gitlab runner

    我想我从根本上错过了一些东西 我是 CI CD 新手 正在尝试使用 gitlab 建立我的第一个管道 该项目是一个预先存在的 PHP 项目 我还不想清理它 目前我已经将整个东西推入了 docker 容器 并且它与谷歌云的 mysql 数据库
  • 模拟跨上下文连接--LINQ/C#

    问题是这样的 我有 2 个数据上下文 我想对其进行联接 现在我知道 LINQ 不允许从一个上下文连接到另一个上下文 并且我知道有 2 种可能的解决方案是创建单个数据上下文或有 2 个单独的查询 这就是我现在正在做的事情 然而我想做的是 模拟
  • 如何管理 git 中的重叠存储库,包括同一目录中的文件?

    我有一个复杂的存储库 有时代码段之间的逻辑边界跨越目录边界 有时目录 X 中的单个文件确实需要与目录 Y 中的文件一起使用 例如 假设我有一个如下所示的中央存储库 a foo a bar b baz1 b baz2 我希望我的本地存储库最终
  • 如何通过 Curl 和 PHP 发送 SOAP XML?

    这已经困扰我好几天了 我正在尝试通过 Curl 发送 SOAP 帖子 但我总是收到 无法连接到主机 错误 但是 我真的不知道如何解决 我有一个 ASP 版本 它可以在相同的 URL 和数据下正常工作 我认为这只是 PHP Curl 的事情