/* * request.h * * Created on: 2021年8月16日 * Author: pengzc */ #ifndef JNI_HTTP_REQUEST_H_ #define JNI_HTTP_REQUEST_H_ #include #include namespace base { class HttpClient; class HttpRequest { public: /** * GET / POST */ HttpRequest(const std::string& method, const std::string& url, const std::string& body); virtual ~HttpRequest(); public: typedef struct { double totalTime; double nameLookupTime; double connectTime; double appConnectTime; double preTransferTime; double startTransferTime; double redirectTime; int redirectCount; } RequestInfo; typedef struct { std::string baseUrl; int timeout; bool followRedirects; int maxRedirects; bool noSignal; struct { std::string username; std::string password; } basicAuth; std::string certPath; std::string certType; std::string keyPath; std::string keyPassword; std::string customUserAgent; std::string uriProxy; RequestInfo lastRequest; } Info; typedef std::map Multiparts; // Instance configuration methods // configure basic auth void SetBasicAuth(const std::string& username, const std::string& password); // append additional headers HttpRequest& AppendHeader(const std::string& key, const std::string& value); //Header Content-Type HttpRequest& ContentType(const std::string& content_type); //Multipart/form data HttpRequest& AppendPart(const std::string& name, const std::string& value); private: friend class HttpClient; std::string method_; std::string url_; std::string body_; typedef std::map HeaderFields; HeaderFields header; bool followRedirects; int maxRedirects; struct { std::string username; std::string password; } basicAuth; Multiparts multiparts_; }; } /* namespace base */ #endif /* JNI_HTTP_REQUEST_H_ */