【问题标题】:Send an XML post request to a web server with CURL使用 CURL 向 Web 服务器发送 XML 发布请求
【发布时间】:2013-03-28 10:12:32
【问题描述】:

我正在尝试使用 php 和 curl 向 Web 服务器发送请求。 我以前没有做过这样的事情,虽然网上有很多很好的例子,但我在理解一些 curl 命令时遇到了一些困难。

这就是我想要做的:有一个已建立的 Web 服务(例如:Web 地图服务),我希望我的 php 代码向该服务发送一个 post XML 请求。作为回应,我想获得一个 XML 文件。

这是我到现在为止的:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, ''); 
    /*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/
    /* curl_setopt($ch, CURLOPT_HEADER, 0);*/
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    /*curl_setopt($ch, CURLOPT_REFERER, '');*/
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $ch_result = curl_exec($ch);
    curl_close($ch);
    echo $ch_result;

正如我所说,我在 php 和使用 curl 方面都是新手,我认为我缺少一些概念。 我的问题是: 1)我必须放入的字符串(链接)是什么:

          curl_setopt($ch, CURLOPT_URL, ''); 

是我要发送请求的服务的主机名吗?

2) 在第 6 行中,变量 $xml 包含我要作为请求发送的 xml 文件。它是正确的还是这个变量应该包含其他东西?

3) 什么情况下需要使用httpheader或者header(row3和row4);

感谢您的帮助。 迪米特里斯

【问题讨论】:

    标签: php curl wms


    【解决方案1】:

    试试这个方法:

      $url = 'https://android.googleapis.com/gcm/send';
      $ch = curl_init();
      curl_setopt( $ch, CURLOPT_URL, $url );
      curl_setopt( $ch, CURLOPT_POST, true );
      curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
      curl_setopt( $ch, CURLOPT_POSTFIELDS, "<xml>here</xml>" );
      $result = curl_exec($ch);
      curl_close($ch);
    

    更多详情请访问:http://php.net/manual/en/function.curl-setopt.php

    【讨论】:

    • 那么在 标签里面我把所有的 xml 字符串都放了?
    • 如果你的整个 xml 在 $xml 那行应该是: curl_setopt( $ch, CURLOPT_POSTFIELDS, $xml );
    • 另外一个我没有搞清楚的是 $url 变量包含什么。是我将发送请求的服务器的主机名吗?
    • 这与您通过浏览器浏览接收脚本时的 URL 相同。当您想将 POST 发送到服务器 example.com 上名为“api”的子文件夹中的 PHP 脚本“run.php”时,您的 $url 必须是“example.com/api/run.php
    • 没问题。你已经问了 5 个问题,你应该开始接受一些答案 ;)
    【解决方案2】:

    我认为使用 HTTP 类可能更适合发出 HTTP 请求。

    http://www.php.net/manual/intro.http.php

    此外,PHP 也有特定的 WMS 库,例如http://docs.huihoo.com/geoserver/1.6.0/Parsing%20and%20using%20WMS%20capabilities%20with%20PHP.html.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 2015-06-16
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      相关资源
      最近更新 更多