2010-10-07 4 views
2

Я использовал следующий скрипт для использования веб-сервисов REST, предоставленных Commission Junction. Я могу получить ответ, но ответ не в формате xml.PHP REST webservices Curl help

<?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 всегда в формате xml. Пожалуйста, поправьте меня, если я ошибаюсь.

Может кто-нибудь, пожалуйста, взгляните на этот скрипт и предложите мне, что мне нужно сделать, чтобы получить ответ в xml? Я хочу сохранить ответ в XML-файле, а затем обработать его позже.

+0

REST-сервисы могут возвращать любой тип медиафайлов, а не только XML. –

ответ

0

Я получаю XML-ответ просто отлично при доступе к https://support-services.api.cj.com/v2/countries. Вы просто смотрите на исходный ответ в браузере? Конечно, браузер будет интерпретировать XML, поэтому вы не увидите сам XML, а только содержащиеся данные. Попробуйте View Source вашего браузера или htmlentities на результат перед его выводом.

2

Из чего я могу собрать завиток, он ничего не делает с данными, которые он получает, это зависит от вас. Вам нужно разобрать его каким-то образом.

Аналогичный вопрос здесь: PHP cURL, extract an XML response

Кроме того, ответ от веб-сервиса не должен быть XML. Это просто обычное дело, есть и другие форматы, такие как json, yaml и html :)

0

Я пробовал свой код, и он генерирует xml из того, что я вижу. Вам нужно разобрать XML, так в той части, которая говорит добавить свой код здесь заменить его:

$parsed_xml = simplexml_load_string($response); 

Как кто-то упоминалось ранее вы можете просмотреть структуру XML путем просмотра источник вывода вашего кода в браузере. С помощью этой информации вы можете приступить к рассмотрению того, как обрабатывать ее с помощью simplexml.