2010-10-07 53 views
2

我已使用以下腳本來使用Commission Junction提供的REST Web服務。我能夠得到響應,但響應不是xml格式。PHP REST webservices Curl幫助

<?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 webservices時的響應始終是xml格式。如果我錯了,請糾正我。

有人請看看這個腳本,並建議我需要做什麼才能獲得在XML響應?我想將響應保存在xml文件中,然後再進行處理。

+0

REST服務可以返回任何媒體類型,而不僅僅是XML。 – 2010-10-07 11:31:49

回答

2

從我能收集的內容中,curl對收到的數據不做任何處理,這取決於您。你需要解析一些方法。

類似的問題在這裏: PHP cURL, extract an XML response

此外,從web服務響應不必須是XML。這只是常見的,還有其他格式,如JSON,YAML和HTML也:)

0

我試過你的代碼,它從我能看到的生成XML。您需要解析XML所以,上面寫着添加自己的代碼部分在這裏更換:

$parsed_xml = simplexml_load_string($response); 

正如前面提到的,你可以通過查看瀏覽器代碼的輸出源查看XML的結構別人。有了這些信息,你就可以開始研究如何用simplexml來處理它。