我试图用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。它只说"未知错误"所以我发现很难知道输入错误的地方。
答案 0 :(得分:1)
脚本中缺少一些重要的Q
参数。使用以下内容(请注意使用curl
):
$xmlData