Add minimal HTTP GET test
The test does a request and prints the responses. It is done to see that the functionality works. Also added a timeout of 10 seconds to both the connection and data transfer phases.
This commit is contained in:
@ -170,10 +170,25 @@ int test_checksums()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_http()
|
||||||
|
{
|
||||||
|
auto res = mxs::http::get("https://mariadb.com/");
|
||||||
|
std::cout << "https://mariadb.com/ responded with: " << res.code << std::endl;
|
||||||
|
if (res.code == 200)
|
||||||
|
{
|
||||||
|
if (res.headers.count("Date"))
|
||||||
|
{
|
||||||
|
std::cout << "The date is: " << res.headers["Date"] << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
|
|
||||||
|
test_http(); // Just to see that it works
|
||||||
|
|
||||||
rv += test_trim();
|
rv += test_trim();
|
||||||
rv += test_trim_leading();
|
rv += test_trim_leading();
|
||||||
rv += test_trim_trailing();
|
rv += test_trim_trailing();
|
||||||
|
@ -1248,6 +1248,9 @@ Result get(const std::string& url)
|
|||||||
char errbuf[CURL_ERROR_SIZE + 1] = "";
|
char errbuf[CURL_ERROR_SIZE + 1] = "";
|
||||||
CURL* curl = curl_easy_init();
|
CURL* curl = curl_easy_init();
|
||||||
|
|
||||||
|
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10); // For connection phase
|
||||||
|
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10); // For data transfer phase
|
||||||
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
|
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
|
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &res.raw_body);
|
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &res.raw_body);
|
||||||
|
Reference in New Issue
Block a user