2015-08-21 5 views
1

Я хочу сделать вызов API с кодомXML-ответ от сервера с помощью завитка

<?php  
$url = "url"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml")); 
    $data = curl_exec($ch); 
echo $data; 
if(curl_errno($ch)) 
    print curl_error($ch); 
else 
    curl_close($ch); 
?> 

и надеюсь, что ответ будет как этого

<GoodreadsResponse> 
<GoodreadsResponse> 
    <Request> 
    <!-- ... request metadata omitted ... --> 
    </Request> 
    <search> 
    <query> 
     <![CDATA[ Ender's Game ]]> 
    </query> 
    <results-start>1</results-start> 
    <results-end>10</results-end> 
    <total-results>100</total-results> 
    <source>Goodreads</source> 
    <query-time-seconds>0.10</query-time-seconds>   
    </search> 
    .... 
</GoodreadsResponse> 

, но когда я исполню этот код, он возвращает в браузере, как этот

true 1 20 386 Goodreads 0.39 2422333 207 690938 33000 1985 4.28 375802 589 Orson Scott Card https://d.gr-assets.com/book ...... 

Как я могу исправить эту

ответ

0

Этот URL-адрес при вставке в браузер возвращает правильный XML.

https://www.goodreads.com/search.xml?key=9ZzEFHzs9LwIdA3qt0fMw&q=Ender%27s+Game

Ваш браузер может отображать XML в виде текста. Просмотрите источник страницы и посмотрите, можете ли вы просмотреть полный ответ XML.

Также вы просто ввели ключ API здесь для всеобщего обозрения. Возможно, вы захотите изменить его, чтобы избежать проблем с кем-либо другим, использующим/злоупотребляющим им.

+0

О, да, ответ дескриптора браузера как html, а не xml, как я могу исправить это, я установил тип содержимого: text/xml, но он не работает – elkun49

1

при использовании в браузере, чем показать исходный код (rightclick -> показать исходный код) для незарегистрированного представления.

<?php 
$request = ""; 
$curl = curl_init("https://www.goodreads.com/search.xml?key=9ZzEFHzs9LwIdA3qt0fMw&q=Ender%27s+Game"); 

curl_setopt($curl, CURLOPT_VERBOSE, FALSE); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($curl, CURLOPT_POST, TRUE); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $request); 
curl_setopt($curl, CURLOPT_HEADER, FALSE); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml")); 
curl_setopt($curl, CURLOPT_TIMEOUT, 0); 
$response = curl_exec($curl); 
echo "<pre>"; print_r($response); echo "</pre>"; 
curl_close($curl); 
Смежные вопросы