31 lines
895 B
C++
31 lines
895 B
C++
#pragma once
|
|
// Minimal HTTP client — no threading, no SSL, just plain TCP to localhost.
|
|
// Works with both win32 and posix MinGW thread models.
|
|
|
|
#include <string>
|
|
|
|
struct HttpResponse {
|
|
int status = 0;
|
|
std::string body;
|
|
bool ok() const { return status >= 200 && status < 300; }
|
|
};
|
|
|
|
// Simple blocking HTTP GET/POST over TCP sockets.
|
|
// host: "127.0.0.1", port: 8484
|
|
class HttpClient {
|
|
public:
|
|
HttpClient(const std::string& host, int port);
|
|
|
|
HttpResponse get(const std::string& path);
|
|
HttpResponse post(const std::string& path, const std::string& body,
|
|
const std::string& content_type = "application/json");
|
|
|
|
private:
|
|
std::string host_;
|
|
int port_;
|
|
int timeout_sec_ = 5;
|
|
|
|
HttpResponse request(const std::string& method, const std::string& path,
|
|
const std::string& body, const std::string& content_type);
|
|
};
|