ИСПОЛЬЗУЯ веб-сервис в PHP, который возвращает XML - PullRequest
0 голосов
/ 10 июня 2009

Я использую веб-сервис для получения некоторых результатов в форме XMl ... вот часть кода

public function getXML()
{
    $url=$this->constructURL();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $xml = curl_exec($ch);
    if ($error = curl_error($ch)) {
    echo "Error: $error<br />\n";
    }
    curl_close($ch);
    return $xml;
}


$resultXML = $api->getXML();
echo $resultXML;

когда я повторяю это '$ asd', оно ничего не делает, кроме обычной страницы ...

но когда я использую значение $ url непосредственно в браузере, это приводит к XML-результату ...

Кто-нибудь может подсказать мне, где я иду не так ???

ДОБАВЛЕНО .........

когда я включил сообщение об ошибке после curl_exec

выдает ошибку

Ошибка: проблема с сертификатом SSL, проверьте, что сертификат CA в порядке. Сведения: ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата

также Iam usig https : // blahblh для запроса

Ответы [ 2 ]

4 голосов
/ 10 июня 2009

решена ПРОБЛЕМА ....

, так как я использую https: //, мне нужно включить одну строку кода, которая устанавливает параметры cURL

curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE);

1 голос
/ 10 июня 2009

Я не слепой - ваш getXML - это метод класса (т.е. myWebService). Итак, как вы думаете, ваш $asd = getXML(); должен работать?

Полагаю, ваш код должен выглядеть следующим образом:

...
$service = new myWebService();
$asd = $service->getXML();
echo $asd;

ДОБАВЛЕНО:

Я думаю, что браузер просто не отображает ваш XML, потому что он получает заголовок с типом содержимого text / html по умолчанию. Попробуйте посмотреть на исходный код страницы или напишите, прежде чем echo

header('Content-type: text/xml');

Любой браузер, предполагающий, что это HTML, должен игнорировать неизвестные теги, которые не совместимы с HTML. Таким образом, ваш XML интерпретируется как неизвестный не HTML-тег.

...