
////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <SFML/Network.hpp>
#include <iostream>


////////////////////////////////////////////////////////////
/// Entry point of application
///
/// \return Application exit code
///
////////////////////////////////////////////////////////////
int main()
{
    // Create a HTTP client
    sf::Http Http;

    // Connect it to www.whatismyip.org
    Http.SetHost("www.whatismyip.org");

    // Prepare a request to retrieve the index page
    sf::Http::Request Request;
    Request.SetMethod(sf::Http::Request::Get);
    Request.SetURI("/");
    Request.SetBody("");
    Request.SetHttpVersion(1, 0);
    Request.SetField("From", "laurent.gom@gmail.com");

    // Send it and get the response returned by the server
    std::cout << "Sending a request to www.whatismyip.org..." << std::endl;
    sf::Http::Response Page = Http.SendRequest(Request);

    // Display the response
    std::cout << "Response received from www.whatismyip.org." << std::endl
              << "Status code (should be 200 on success): " << Page.GetStatus() << std::endl
              << "HTTP version: " << Page.GetMajorHttpVersion() << "." << Page.GetMinorHttpVersion() << std::endl
              << "Returned message (should be your IP address or an error message): " << Page.GetBody() << std::endl;

    // Wait until the user presses 'enter' key
    std::cout << "Press enter to exit..." << std::endl;
    std::cin.ignore(10000, '\n');

    return EXIT_SUCCESS;
}

