Как достать данные из интернета

Тип статьи:
Авторская

Всем привет)

Я разговаривал с некоторыми начинающими скриптерами, и когда заводил тему про внешние данные или работу с базами данных, люди просто не понимали, как это все работает. Один парень мне сказал, — «Отдельно команды вроде понятны, но связать все вместе не получается.»

Так вот, давайте попробуем не заморачиваться а достать данные текущего прогноза погоды.

Почти 2 часа я убил на то, чтобы найти сервис, который представляет данные о погоде в формате JSON без регистрации и всяких там API ключей. В итоге нашел этот.

К тому-же он предоставляет очень простенькую инфу, и работает без всяких ключей.

Получилось вот что:

Код для копирования:

key http_request_id;
string city="";
 
default
{
    state_entry()
    {
        city=«moscow»;
    }
    
    touch_start(integer num_detected)
    {
        string ful_adr=«opogode.ua/api/v1/current.json?city=» + city;
        http_request_id = llHTTPRequest(ful_adr, [HTTP_VERIFY_CERT, FALSE], "");
    }
 
    http_response(key request_id, integer status, list metadata, string body)  
    {
        if (request_id != http_request_id) return;// exit if unknown

        string city_parse = llJsonGetValue( body, [«city»]);
        string city_name =  llJsonGetValue( city_parse, [«name_ru»]);
        string weather =  llJsonGetValue( body, [«weather»]);
        string temperature =  llJsonGetValue( weather, [«temperature»]);
        string pressure =  llJsonGetValue( weather, [«pressure»]);
        string humidity =  llJsonGetValue( weather, [«humidity»]);
        
        llSay(0, «В городе » + city_name + " температура воздуха=" + temperature + «гр/сельсия, давление=» + pressure + «мм, влажность воздуха=» + humidity + "%");
    }
}

Если у кого есть вопросы, прошу задавать.

Нет комментариев. Ваш будет первым!
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.