Так что я должен сделать что-то для школы. По сути, это то, что если кто-то вызывает мою программу, он задает ей вопрос, и он увидит, сможет ли он найти ответ о переполнении стека. У меня проблема в том, что мне нужно, чтобы URL CURL был податливым, потому что вы не знаете, какой вопрос он задает:
#include <stdio.h>
#include "curl/curl.h"
#include "json.hpp"
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
using json = nlohmann::json;
int main()
{
//this is the input from the user
string question;
cout << "Please Enter your Question Using EXACTLY 2 Words" << endl;
getline(cin, question);
//initiating the curl
CURL *curl;
CURLcode result;
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, ("api.stackexchange.com/2.2/search?order=desc&sort=activity&intitle={question}&site=stackoverflow&filter=!)8aCqWxCWk*)CTW"));
//follow URLS
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
//sets a waiting time before it times out waiting for a response form the website
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
//decodes weird charcters
curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "gzip");
//actually getting the data
result = curl_easy_perform(curl);
//making sure that the curl is ok and worked right
if(result != CURLE_OK)
{
cout << curl_easy_strerror(result) << endl;
return 1;
}
}
return 1;
}
, так что в конечном итоге он получит первый принятый принятый идентификатор затем найдите его, получите тело этого ответа и верните его пользователю в терминале. Я попытался сделать URL-адрес, подобный этому
string url = "api.stackexchange.com/2.2/search?order=desc&sort=activity&intitle=" + question + "&site=stackoverflow&filter=!)8aCqWxCWk*)CTW"
, но мне не нравится, что он говорит, что это плохой URL-адрес, но я могу заставить его распечатать его и вставить туда вручную, и он работает. Я также попробовал то, что вы видите в исходном коде, добавьте его с {}, это синтаксис, который использует веб-сайт. Это возвращает что-то из совершенно другого URL, который я даже не могу найти. Все, что я пробовал, либо перенаправляет меня на что-то совершенно другое, либо не работает вообще, и выдает неверный URL-адрес. Кто-нибудь знает, как можно сделать URL Malleable?