2012-02-24 4 views
2

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

<?php 
    error_reporting(E_ALL); 

    $URL = $_REQUEST['URL']; 
    $site = $_REQUEST['site']; 
    $file = fopen($URL, 'r'); 
    $xmlRequest = fread($file, filesize($URL)); 
    echo "<textarea>" . $xmlRequest . "</textarea>"; //this is me making sure the file 
                //actually contains the xml doc 

    $endpoint = "https://api.sandbox.ebay.com/ws/api.dll"; 
    $session = curl_init($endpoint);      // create a curl session 

    curl_setopt($session, CURLOPT_POST, true);    // POST request type 
    curl_setopt($session, CURLOPT_POSTFIELDS, $xmlRequest); // set the body of the POST 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // return values as a string - not to std out 
    $headers = array(
     'X-EBAY-API-CALL-NAME: GetCategories', 
     'X-EBAY-API-SITE-ID: ' . $site, 
     'X-EBAY-API-DEV-NAME: *****', 
     'X-EBAY-API-APP-NAME: *****', 
     'X-EBAY-API-CERT-NAME: *****', 
     'X-EBAY-API-COMPATIBILITY-LEVEL: 761', 
     'X-EBAY-API-REQUEST-ENCODING: XML', // for a POST request, the response by default is in the same format as the request 
     'Content-Type: text/xml;charset=utf-8' 
    ); 
    curl_setopt($session, CURLOPT_HTTPHEADER, $headers); //set headers using the above array of headers 

    $responseXML = curl_exec($session);      // send the request 
    curl_close($session); 

    if ($responseXML = '' OR $responseXML = ' ') { 
     echo "Failed!"; 
    } 
    echo $responseXML; 
    return $responseXML; // returns a string 

?> 
+1

Это требует базовой отладки. Curl имеет функцию ['curl_error()'] (http://php.net/curl_error), которая сообщит вам, что пошло не так с запросом. –

+0

спасибо, я понял, в конце концов, полностью изменил код, но я получил его на работу – CKKiller

ответ

0

Попробуйте это:

$xml_response = simplexml_load_string($responseXML); 

Внутри этого xml_response вы должны найти Ack

$xml_response->Ack 

значения могут быть: Внимание, успех или неудача и дает вам тип ошибки (если в запросе была ошибка)

Смежные вопросы