web_request.h
1 
2 #pragma once
3 
4 #include "../api_network.h"
5 #include <memory>
6 
7 namespace clan
8 {
9 
10 class IODevice;
11 class DataBuffer;
12 class WebResponse;
13 class WebRequest_Impl;
14 
16 class CL_API_NETWORK WebRequest
17 {
18 public:
19  WebRequest();
20 
21  static WebRequest options(const std::string &url);
22  static WebRequest get(const std::string &url);
23  static WebRequest head(const std::string &url);
24  static WebRequest post(const std::string &url);
25  static WebRequest put(const std::string &url);
26  static WebRequest http_delete(const std::string &url);
27  static WebRequest trace(const std::string &url);
28 
29  void set_header_field(const std::string &name, const std::string &value);
30  void set_content_type(const std::string &content_type);
31 
32  void set_body(const DataBuffer &data);
33  void set_body(const std::string &data);
34  void set_body(IODevice data);
35  void set_body(const void *data, int size);
36  //IODevice get_body_writer();
37 
38  WebResponse get_response();
39 
40 private:
41  std::shared_ptr<WebRequest_Impl> impl;
42 };
43 
44 }
I/O Device interface.
Definition: iodevice.h:51
HTTP web response class.
Definition: web_response.h:15
General purpose data buffer.
Definition: databuffer.h:43
HTTP web request class.
Definition: web_request.h:16