Я использую webservice, чтобы получить некоторые результаты в форме 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» не делает ничего, кроме страницы balnk …
но когда я использую значение $ url непосредственно в браузере, он создает результат XML …
может ли кто-нибудь предложить мне, где я иду не так ???
ДОБАВЛЕНО ………
когда я включил отчет об ошибках после curl_exec
он дает ошибку
Ошибка: проблема сертификата SSL, убедитесь, что сертификат CA в порядке. Подробности: ошибка: 14090086: SSL-процедуры: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата не выполнена
также Iam usig https : // blahblh для запроса
РЕШЕНО ПРОБЛЕМА ….
потому что я использую https: //, я должен включить одну строку кода, которая устанавливает параметры cURL
curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE);
Я не слепой – ваш «getXML» – это метод класса (т.е. myWebService). Итак, как вы думаете, ваш $asd = getXML();
должно сработать?
Я предполагаю, что ваш код должен выглядеть так:
... $service = new myWebService(); $asd = $service->getXML(); echo $asd;
ДОБАВЛЕНО:
Я думаю, что браузер просто не отображает ваш XML, потому что по умолчанию он получает заголовок с текстом text / html. Попробуйте посмотреть источник страницы или написать перед эхом
header('Content-type: text/xml');
Любой браузер, предполагая, что это HTML, должен игнорировать неизвестные теги, которые не совместимы с HTML. Таким образом, ваш XML интерпретируется как неизвестный не-HTML-тег.