Перейти к содержанию
ReallyWorld

herosino1432

Рекомендуемые сообщения

Опубликовано

1. herosino1432
2. Для всех
3. Создать API, с помощью которого можно будет брать определенную информацию в определенном типе данных.

// Например, мой игровой персонаж всё ещё активен на вашем проекте 
// и я сижу в телефоне, решив получить информацию о игроках поблизости, 
// то мне легче обратиться к API, чтоб заполучить данную информацию.
// Или мне хочется узнать свой баланс...
// Покажу пример обращения к API на C++ для заполучения информации о игроках поблизости.

#define CURL_STATICLIB

#include <curl/curl.h>

#ifdef _DEBUG
#pragma comment (lib, "libcurl_a_debug.lib")
#else
#pragma comment (lib, "libcurl_a.lib")
#endif

#pragma comment (lib, "Normaliz.lib")
#pragma comment (lib, "Ws2_32.lib")
#pragma comment (lib, "Wldap32.lib")
#pragma comment (lib, "Crypt32.lib")
#pragma comment (lib, "advapi32.lib")

#include <nlohmann/json.hpp>

#include <iostream>
#include <string>

using json = nlohmann::json;
using namespace std;

size_t writeFunction(void* ptr, size_t size, size_t nmemb, string* data) {
    data->append((char*)ptr, size * nmemb);
    return size * nmemb;
}

string getJSON() {
    CURL* curl = curl_easy_init();

    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://api.reallyworld.ru?key=[KEY]&format=json");
        curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
        curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50L);
        curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);

        string response_string;
        string header_string;
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeFunction);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_string);
        curl_easy_setopt(curl, CURLOPT_HEADERDATA, &header_string);

        curl_easy_perform(curl);
        
        return response_string;

        curl_easy_cleanup(curl);
        curl_global_cleanup();

        curl = NULL;
    } else {
        return "{\"error\":\"none\"}";
    }
}

string getIP() {
    string str(getJSON());
    json js = json::parse(str);

    return js["near"];
}

 

  • OMG999 закрыл тема

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

×
×
  • Создать...