00001 00002 #pragma once 00003 00004 #include "../api_network.h" 00005 #include "../../Core/System/sharedptr.h" 00006 00007 class CL_IODevice; 00008 class CL_DataBuffer; 00009 class CL_WebResponse; 00010 class CL_WebRequest_Impl; 00011 00015 class CL_API_NETWORK CL_WebRequest 00016 { 00017 public: 00018 CL_WebRequest(); 00019 00020 static CL_WebRequest options(const CL_String &url); 00021 static CL_WebRequest get(const CL_String &url); 00022 static CL_WebRequest head(const CL_String &url); 00023 static CL_WebRequest post(const CL_String &url); 00024 static CL_WebRequest put(const CL_String &url); 00025 static CL_WebRequest http_delete(const CL_String &url); 00026 static CL_WebRequest trace(const CL_String &url); 00027 00028 void set_header_field(const CL_String &name, const CL_String &value); 00029 void set_content_type(const CL_String &content_type); 00030 00031 void set_body(const CL_DataBuffer &data); 00032 void set_body(const CL_String &data); 00033 void set_body(CL_IODevice data); 00034 void set_body(const void *data, int size); 00035 //CL_IODevice get_body_writer(); 00036 00037 CL_WebResponse get_response(); 00038 00039 private: 00040 CL_SharedPtr<CL_WebRequest_Impl> impl; 00041 };