Инструменты пользователя

Инструменты сайта


Боковая панель

Разделы

Общее описание
История изменений
Рекомендации к обновлению
Планы на будущее
Известные проблемы
Онлайн демо
Случайная статья
Видео
Помощь проекту
Люди

FAQ



Редактировать сайдбар

omaeurl

OmaeUrl

Класс OmaeUrl предоставляет уровень абстракции для работы с HTTP запросами к удаленным хостам. В большинстве своем он наследует кумулятивные механики NyanORM и пытается быть максимально на него похожим во всех своих проявлениях.

Итак, коротко в примерах. Например, хотим узнать какой у нас последний стабильный релиз Ubilling:

    $ubillingRelease=new OmaeUrl('http://ubilling.net.ua/RELEASE');
    $latestRelease=$ubillingRelease->response();

Ну либо так, если вам так хочется:

    $ubillingRelease=new OmaeUrl();
    $latestRelease=$ubillingRelease->response('http://ubilling.net.ua/RELEASE');

Ну либо хочется узнать производителя оборудования с каким-то MAC, при помощи API searchmac.com:

    $apiUrl = 'http://searchmac.com/api/v2/';
    $mac = '00:19:99:e0:cf:c8';
    $searchMac = new OmaeUrl();
    $vendor = $searchMac->response($apiUrl.$mac);

Короче, обращение к URL-у и опциональная отсылка GET/POST(dataGet()/dataPost()) переменных туда-же, а также выставление куки(dataCookie), заголовков(dataHeader), авторизации (setBasicAuth) и всего прочего, происходит в момент request(). Он же и возвращает сырые данные полученные в процессе выполнения запроса.

Давайте рассмотрим немного, более наркоманский пример взаимодействия с кабинетом пользователя при помощи API XMLAgent?

    $userstatsUrl = 'http://demo.ubilling.net.ua:9999/billing/userstats/';
    $userstatsApi = new OmaeUrl($userstatsUrl);
    $agent = 'UbillingYobaBrowser/6.6.6 awesome';
    $userstatsApi->setUserAgent($agent);
    //user params
    $userLogin = 'tbjfp4mb';
    $userPassword = 'piwkg';
 
    //setting some request options
    $userstatsApi->dataGet('xmlagent', 'true');
    $userstatsApi->dataGet('json', 'true');
    $userstatsApi->dataGet('uberlogin', $userLogin);
    $userstatsApi->dataGet('uberpassword', md5($userPassword));
 
    //performing request
    $result = $userstatsApi->response();
 
    //connection issues handling
    if ($userstatsApi->httpCode() == 0) {
        $error = $userstatsApi->error();
        show_error($error['errorcode'] . ' ' . $error['errormessage']);
    }
 
    $requestInfo = $userstatsApi->lastRequestInfo();
    if ($requestInfo['http_code'] != 200) {
        //something went wrong?
        show_error(__('HTTP error code') . ': ' . $requestInfo['http_code']);
    } else {
        //ok, some data received
        if (!empty($result)) {
            $result = json_decode($result, true);
            debarr($result);
        }
    }

ну собственно и получаем на выходе нужные нам данные

Array
(
    [address] => Зловещенск Вязов 13/7
    [realname] => Василь Бухайко
    [login] => tbjfp4mb
    [cash] => 0
    [ip] => 172.30.0.9
    [phone] => 90932
    [mobile] => 925219854
    [email] => tbjfp4mb@ourisp.ua
    [credit] => 0
    [creditexpire] => No
    [payid] => 2887647241
    [contract] => 80362
    [tariff] => Unlim-5
    [tariffnm] => No
    [traffdownload] => 0 b
    [traffupload] => 0 b
    [trafftotal] => 0 b
    [accountstate] => active
    [accountexpire] => 4
    [currency] => UAH
    [version] => 1
)

Собственно относительно отсылки POST данных, то они ничем не отличаются от GET в контексте работы с OmaeUrl:

  $userstatsApi->dataPost('postvariable1', 'true');
  $userstatsApi->dataPost('postvariable2', '666');

Следует также иметь ввиду, что после совершения response() все структуры GET/POST/COOKIE не очищаются автоматически, собственно для упрощения работы с удаленными API требующими определенного набора входных данных для всех запросов. Для их очистки, вы можете вызвать соответствующие сеттеры с пустыми значениями, либо в случае надобности совершения повторных запросов с другими параметрами, вы просто устанавливаете сеттерами новые значения для тех же имен переменных и делаете следующий запрос. Пример:

    $userstatsUrl = 'http://demo.ubilling.net.ua:9999/billing/userstats/';
    $userstatsApi = new OmaeUrl($userstatsUrl);
 
    //setting some request options
    $userstatsApi->dataGet('xmlagent', 'true');
    $userstatsApi->dataGet('json', 'true');
 
    //performing requests for different users
    $userLogin = 'tbjfp4mb';
    $userPassword = 'piwkg';
    $userstatsApi->dataGet('uberlogin', $userLogin);
    $userstatsApi->dataGet('uberpassword', md5($userPassword));
    $userData = $userstatsApi->response();
 
    $userLogin = 'v6x3edx5';
    $userPassword = '2omzn';
    $userstatsApi->dataGet('uberlogin', $userLogin);
    $userstatsApi->dataGet('uberpassword', md5($userPassword));
    $anotherUserData = $userstatsApi->response();
 
    debarr(json_decode($userData, true));
    debarr(json_decode($anotherUserData, true));

Подробнее о методах и возможностях OmaeUrl можно узнать бегло ознакомившись вот с этой документацией

omaeurl.txt · Последние изменения: 2021/11/27 17:24 — nightfly