Simplify HttpClient Interface
This commit is contained in:
+3
-42
@@ -1,6 +1,7 @@
|
||||
#ifndef HTTPCLIENT_H
|
||||
#define HTTPCLIENT_H
|
||||
|
||||
#include "HttpRequest.h"
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -13,52 +14,12 @@ class HttpClientImpl;
|
||||
class HttpClient
|
||||
{
|
||||
public:
|
||||
HttpClient(int timeout = 3);
|
||||
HttpClient(int timeout = 3, bool debugLogging = false);
|
||||
~HttpClient();
|
||||
|
||||
HttpClient(const HttpClient&) = delete;
|
||||
|
||||
int GetUrlReturnCode(const std::string& url) const;
|
||||
|
||||
std::string GetUrlContents(const std::string& url) const;
|
||||
void GetUrlSilent(const std::string& url) const;
|
||||
std::string GetUrlRedirect(const std::string& url) const;
|
||||
|
||||
std::string GetUrlContents(const std::string& url, const std::vector<std::string>& httpHeaders) const;
|
||||
void GetUrlSilent(const std::string& url, const std::vector<std::string>& httpHeaders) const;
|
||||
std::string GetUrlRedirect(const std::string& url, const std::vector<std::string>& httpHeaders) const;
|
||||
|
||||
std::string GetUrlContents(const std::string& url, const std::string& cookieFile) const;
|
||||
void GetUrlSilent(const std::string& url, const std::string& cookieFile) const;
|
||||
std::string GetUrlRedirect(const std::string& url, const std::string& cookieFile) const;
|
||||
|
||||
std::string GetUrlContents(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile) const;
|
||||
void GetUrlSilent(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile) const;
|
||||
std::string GetUrlRedirect(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile) const;
|
||||
|
||||
std::string PutUrlContents(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& data) const;
|
||||
void PutUrlSilent(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& data) const;
|
||||
std::string PutUrlRedirect(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& data) const;
|
||||
|
||||
std::string PutUrlContents(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile, const std::string& data) const;
|
||||
void PutUrlSilent(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile, const std::string& data) const;
|
||||
std::string PutUrlRedirect(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile, const std::string& data) const;
|
||||
|
||||
std::string GetUrlPostContents(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& data) const;
|
||||
void GetUrlPostSilent(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& data) const;
|
||||
std::string GetUrlPostRedirect(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& data) const;
|
||||
|
||||
std::string GetUrlPostContents(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile, const std::string& data) const;
|
||||
void GetUrlPostSilent(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile, const std::string& data) const;
|
||||
std::string GetUrlPostRedirect(const std::string& url, const std::vector<std::string>& httpHeaders, const std::string& cookieFile, const std::string& data) const;
|
||||
|
||||
std::string GetUrlPostAttachmentContents(const std::string& url, const std::string& data, const std::string& filename, const std::string& fileFieldname) const;
|
||||
void GetUrlPostAttachmentSilent(const std::string& url, const std::string& data, const std::string& filename, const std::string& fileFieldname) const;
|
||||
std::string GetUrlPostAttachmentRedirect(const std::string& url, const std::string& data, const std::string& filename, const std::string& fileFieldname) const;
|
||||
|
||||
std::string GetUrlPostAttachmentContents(const std::string& url, const std::string& cookieFile, const std::string& data, const std::string& filename, const std::string& fileFieldname) const;
|
||||
void GetUrlPostAttachmentSilent(const std::string& url, const std::string& cookieFile, const std::string& data, const std::string& filename, const std::string& fileFieldname) const;
|
||||
std::string GetUrlPostAttachmentRedirect(const std::string& url, const std::string& cookieFile, const std::string& data, const std::string& filename, const std::string& fileFieldname) const;
|
||||
std::string Open(const HttpRequest& request) const;
|
||||
|
||||
private:
|
||||
std::unique_ptr<HttpClientImpl> m_pHttpClientImpl;
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
#ifndef HTTPREQUEST_H
|
||||
#define HTTPREQUEST_H
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
||||
namespace Http {
|
||||
|
||||
class HttpRequest
|
||||
{
|
||||
public:
|
||||
struct Method
|
||||
{
|
||||
enum type
|
||||
{
|
||||
GET,
|
||||
HEAD,
|
||||
POST,
|
||||
PUT,
|
||||
DELETE,
|
||||
CONNECT,
|
||||
TRACE,
|
||||
PATCH
|
||||
};
|
||||
};
|
||||
|
||||
struct ReturnType
|
||||
{
|
||||
enum type
|
||||
{
|
||||
None,
|
||||
Code,
|
||||
Content,
|
||||
Redirect
|
||||
};
|
||||
};
|
||||
|
||||
public:
|
||||
HttpRequest(const std::string url);
|
||||
~HttpRequest();
|
||||
|
||||
HttpRequest::Method::type Method() const;
|
||||
void Method(HttpRequest::Method::type method);
|
||||
HttpRequest::ReturnType::type ReturnType() const;
|
||||
void ReturnType(HttpRequest::ReturnType::type returnType);
|
||||
|
||||
std::string URL() const;
|
||||
void URL(const std::string& url);
|
||||
std::vector<std::string> Headers() const;
|
||||
void Headers(const std::vector<std::string>& headers);
|
||||
std::string Data() const;
|
||||
void Data(const std::string& data);
|
||||
|
||||
std::string CookieFile() const;
|
||||
void CookieFile(const std::string& cookieFile);
|
||||
|
||||
std::string Filename() const;
|
||||
void Filename(const std::string& filename);
|
||||
std::string FileFieldname() const;
|
||||
void FileFieldname(const std::string& fileFieldname);
|
||||
|
||||
private:
|
||||
HttpRequest::Method::type m_method;
|
||||
HttpRequest::ReturnType::type m_returnType;
|
||||
|
||||
std::string m_url;
|
||||
std::vector<std::string> m_headers;
|
||||
std::string m_data;
|
||||
|
||||
std::string m_cookieFile;
|
||||
|
||||
std::string m_filename;
|
||||
std::string m_fileFieldname;
|
||||
};
|
||||
|
||||
} // namespace Http
|
||||
|
||||
#endif // HTTPREQUEST_H
|
||||
Reference in New Issue
Block a user