Отправьте почтовый запрос с вопросом libcurl C ++: s - PullRequest
1 голос
/ 13 июля 2020

Мне удалось выполнить мой GET-запрос с помощью libcurl, никаких проблем!

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

Мой код выглядит так, и мне интересно, есть ли метод, с помощью которого я могу отправить данные как есть:

CURL* curlpost;

curl_global_init(CURL_GLOBAL_ALL);

curlpost = curl_easy_init();
if (curlpost) {
    curl_easy_setopt(curlpost, CURLOPT_URL, "https://127.0.0.1:50006/lol-lobby/v2/lobby");
    // post data:
    curl_easy_setopt(curlpost, CURLOPT_POSTFIELDS, "{

        "customGameLobby": {
        "configuration": {
            "gameMode": "CLASSIC", "gameMutator" : "", "gameServerRegion" : "",
                "mapId" : 11,
                "mutators" : {"id": 1}, "spectatorPolicy" : "AllAllowed", "teamSize" : 5
        }

    },
        "queueId": 830,
        "isCustom" : false
}")

Это не работает и это необработанные JSON данные, которые я хочу отправить на сервер.

Как я могу отправить эти данные на сервер, это мой вопрос?

JSON данные для отправки:

{
"customGameLobby": {
    "configuration": {
      "gameMode": "CLASSIC",
      "gameMutator": "",
      "gameServerRegion": "",
      "mapId": 11, 
      "mutators": {"id": 1},
      "spectatorPolicy": "AllAllowed",
      "teamSize": 5 
    }
  },
"queueId": 830,
"isCustom": false
}

   

1 Ответ

0 голосов
/ 13 июля 2020

Используйте curl_easy_escape, чтобы URL-адрес закодировал данную C строку:

char* encoded = curl_easy_escape(curlpost, "{ your post data }", 0);

// use "encoded"

// free the memory
curl_free(encoded);
...