These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Обсуждение общих вопросов

 
  • Topic is locked indefinitely.
 

обработка ошибок API запросов

Author
HallGallAlexSolImi
Risky eXplosion
Death or Glory
#1 - 2013-12-10 06:40:41 UTC  |  Edited by: HallGallAlexSolImi
Пример кода:

query = "https://api.eveonline.com/account/APIKeyInfo.xml.aspx?keyID=".$keyID."&vCode=".$vCode;
$xml = simplexml_load_string(file_get_contents($query));
переменная $xml равна false, хотя я думаю что должен быть массив данных (при активном чаре массив данных есть), если чар не активен, то при API запросе XML выводит на экран:

Quote:

error code="222"
Key has expired. Contact key owner for access renewal.


Еще заметил что сам код выдает ошибку на эран
[function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
Как так, если по запросу API на экран выдается XML

Далее я вывел переменную на экран
var_dump($xml);

Quote:
boolean false


Далее иду другим способом (через curl) ошибка
Quote:
'errmsg' => string 'SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed'
контента опять нет
'content' => boolean false

добавив параметры
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

Но с помощью curl не тот вариант, потому что curl выводит только текст, а не как надо в массив данных.

И как собственно обработать эту ошибку?!
echo $xml->error ничего не выдает, потому что нет массива данных
вот документацию по ошибкам нашел
даже пост на англ языке нашел
но там так ничего путевого тоже не ответили

Единственное что на ум приходит это IP забанили ?! Shocked
Через сколь времени бан снимается ?

P.S.
Apache/2.2.22 (Win32) PHP/5.3.2