使用PHP curl模仿CLI卷曲

时间:2015-09-15 12:26:14

标签: php xml curl

我试图用php curl复制一个命令行curl。有些东西不起作用,你能明白为什么吗?

我想模仿的CLI版本

curl --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: textSearchAction" --data @searchRequest.xml http://somedomain/services/Service | tidy -xml -i

这是我尝试过的

$rCurlSession = curl_init();
curl_setopt($rCurlSession, CURLOPT_URL, 'http://somedomain/services/Service');
curl_setopt($rCurlSession, CURLOPT_HEADER, true);
curl_setopt($rCurlSession, CURLOPT_RETURNTRANSFER, true);
curl_setopt($rCurlSession, CURLOPT_POSTFIELDS, file_get_contents('searchRequest.xml'));
$aHeaders = array(
    'Content-Type: text/xml;charset=UTF-8',
    'SOAPAction: textSearchAction',
);

curl_setopt($rCurlSession, CURLOPT_HTTPHEADER, $aHeaders);
$sResponse = curl_exec($rCurlSession);

第一个命令返回一个我期望的xml,最后一个给我一个错误消息xml。它只说"未知错误"所以我发现很难知道输入错误的地方。

1 个答案:

答案 0 :(得分:1)

脚本中缺少一些重要的Q参数。使用以下内容(请注意使用curl):

$xmlData