0

我正在尝试使用 PHP 脚本中的 HTTP POST 通过 CURL 发送 XML 数据。我在执行时收到以下消息。

找到 文档已移至此处

这是我的代码。

<?php
$url = "https://usm.channelonline.com/REQUEST";

$post_string = '<export_documents_request schemaVersion="4.0">
  <options>
    <onlyUnexported>false</onlyUnexported>
    <eventInRange>
      <eventType>modified</eventType>
      <after>2005-01-01T10:00:00Z</after>
    </eventInRange>
  </options>
</export_documents_request>';


$header  = "POST HTTP/1.1 \r\n";
$header .= "Content-type: text/xml \r\n";
$header .= "Content-length: ".strlen($post_string)." \r\n";
$header .= "Content-transfer-encoding: text \r\n";
$header .= "Connection: close \r\n\r\n"; 
$header .= $post_string;

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);
curl_setopt($ch,CURLOPT_MAXREDIRS,10);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);

$data = curl_exec($ch); 

if(curl_errno($ch))
    print curl_error($ch);
else
    echo $data;
    curl_close($ch);

?>

这是执行的屏幕视图。

在此处输入图像描述

我擅长 PHP,但只熟悉 CURL。你能帮我解决这个问题吗?

4

1 回答 1

1

就像 MrCode 指出的那样,服务器并没有真正响应 301/302 或者您的 PHP 正在安全模式下运行,这不允许使用CURLOPT_FOLLOWLOCATION.

于 2012-04-19T10:49:17.240 回答