发送XML POST请求,卷曲Web服务器(Send an XML post request to

2019-08-18 02:58发布

我试图发送使用PHP和卷曲到Web服务器的请求。 我没有做过这样的事情之前,虽然网上有很多很好的例子,我有一些困难,了解一些卷曲的命令。

这就是我想做的事:有一个成熟的网络服务(例如:Web地图服务),我想我的PHP代码来发个帖子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报头(ROW3和ROW4);

谢谢您的帮助。 季米特里斯

Answer 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



Answer 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 。



文章来源: Send an XML post request to a web server with CURL
标签: php curl wms