我使用以下脚本来使用Commission Junction提供的REST Web服务。我能够得到响应,但响应不是xml格式。
<?php
$targeturl="https://support-services.api.cj.com/v2/countries";
$CJ_DevKey= "xxxxxxxxx";
// return xml feed from CJ
$ch = curl_init($targeturl);
curl_setopt($ch, CURLOPT_POST, FAlSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: '.$CJ_DevKey));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // will print in browser all country codes in an xml format
/*
ADD YOUR OWN CODE HERE TO DO WHAT YOU WANT WITH THE RESPONSE. MAYBE SAVE RESULTS TO A FILE OR THE PARSE THE RESULTS INTO A DATABASE?
*/
?>
我只是感到困惑。使用REST Web服务时的响应始终是xml格式。如果我错了,请纠正我。
有人请看看这个脚本,并建议我需要做什么才能在xml中获得响应?我想将响应保存在xml文件中,然后再处理。
答案 0 :(得分:2)
从我可以收集到的卷曲不会对它收到的数据做任何事情,这取决于你。你需要解析它的方式。
类似的问题在这里: PHP cURL, extract an XML response
此外,来自Web服务的响应不必是xml。这很常见,还有其他格式,如json,yaml和html:)
答案 1 :(得分:0)
访问https://support-services.api.cj.com/v2/countries时,我得到了一个XML响应。您只是在浏览器中查看原始响应吗?当然浏览器将解释 XML,因此您不会看到XML本身,只会看到包含的数据。在输出结果之前,请尝试使用浏览器的View Source
或htmlentities
。
答案 2 :(得分:0)
我已经尝试过你的代码了,它可以从我看到的内容中生成xml。你需要解析xml,所以在你自己添加自己代码的部分中用以下代码替换它:
$parsed_xml = simplexml_load_string($response);
如前所述,您可以通过在浏览器中查看代码输出源来查看xml的结构。有了这些信息,您可以开始查看如何使用simplexml处理它。