PHP REST Web服务Curl帮助

时间:2010-10-07 04:05:47

标签: php rest

我使用以下脚本来使用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文件中,然后再处理。

3 个答案:

答案 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 Sourcehtmlentities

答案 2 :(得分:0)

我已经尝试过你的代码了,它可以从我看到的内容中生成xml。你需要解析xml,所以在你自己添加自己代码的部分中用以下代码替换它:

$parsed_xml = simplexml_load_string($response);

如前所述,您可以通过在浏览器中查看代码输出源来查看xml的结构。有了这些信息,您可以开始查看如何使用simplexml处理它。