带有XML请求的HTTP Post命令(PHP)

时间:2010-11-17 11:51:11

标签: php xmlhttprequest

我正在研究一个需要与外部(商业)系统集成的系统。在我的网站上,我有一些信息,然后需要根据外部系统的记录进行检查。这是通过发布XML请求来完成的。

我无法理解他们的文件。他们给了我一些xml的例子,但我不知道该怎么做。有人可以帮忙吗?!我在网上找不到很多东西告诉我该怎么做。

我正在使用PHP,请求必须通过HTTPS发布。我给出的xml是(粗略 - 由于安全性而无法提供完整的详细信息):

<?xml version="1.0" standalone="no" ?>
<request>
  <request_header interface_version_no="0.2" dtd_version_no="0.2">
    <client_reference>Test Client</client_reference>
  </request_header>
  <service_request id="1">
    <session_service>
      <logon_request domain_id="******" user_id="******" password="******"/>
    </session_service>
  </service_request>
</request>

上面的代码应该让我登录他们的系统。所以,我的问题是:

  1. 我该怎么做呢?如何将其变为POST请求?
  2. 我该如何处理响应(也是xml)?我之前解析过xml(使用XSLT),但那就是显示它...有没有一种标准的方法在PHP中执行它?
  3. 谢谢!任何帮助表示赞赏。我在网上找不到多少(好吧,我可以找到负载,但似乎没有一个特定于我正在寻找的东西,所以我感到困惑),所以即使链接到相应的帮助页面也会很棒

1 个答案:

答案 0 :(得分:3)

在PHP中发送HTTP请求通常使用curl extension来完成,curl_setopt()提供了许多功能。

例如,请参阅allow_url_fopen的页面,其中列出了可以与curl一起使用的所有选项 - 其中有一些可以帮助您,例如使用POSTing内容。


如果在您的服务器上启用file_get_contents(),则另一种解决方案是使用PHP的流功能。

您可以使用HTTP context options函数,提供自定义上下文选项 - 请参阅此页:DOMDocument (示例#1很有趣,在您的情况下;-))


如果您将XML作为响应,则必须解析该结果。

这通常是在PHP中使用SimpleXML完成的,如果您需要大量修改或操作XML ......或者如果您只需要阅读XML并提取simplexml_load_string那么它的一些数据。
在这里,您很可能需要使用{{3}}函数; - )