00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_network.h"
00035 #include "../../Core/System/sharedptr.h"
00036
00037 class CL_DataBuffer;
00038 class CL_IODevice;
00039 class CL_SocketName;
00040 class CL_HTTPClientConnection_Impl;
00041
00045 class CL_API_NETWORK CL_HTTPClientConnection
00046 {
00049
00050 public:
00051 CL_HTTPClientConnection();
00052
00056 CL_HTTPClientConnection(const CL_SocketName &remote);
00057
00062 CL_HTTPClientConnection(const CL_SocketName &remote, const CL_SocketName &local);
00063
00064 ~CL_HTTPClientConnection();
00065
00069
00070 public:
00071
00075
00076 public:
00077 void send_post(
00078 const CL_StringRef8 &url,
00079 const CL_StringRef8 &header_lines,
00080 const CL_DataBuffer &post_data,
00081 bool use_http_10 = false);
00082
00083 void send_get(
00084 const CL_StringRef8 &url,
00085 const CL_StringRef8 &header_lines,
00086 bool use_http_10 = false);
00087
00088 int receive_response(
00089 CL_String8 &out_status_text,
00090 CL_String8 &out_header_lines,
00091 CL_DataBuffer &out_data);
00092
00093 int receive_response(
00094 CL_String8 &out_status_text,
00095 CL_String8 &out_header_lines,
00096 CL_IODevice &out_data);
00097
00098 static CL_StringRef8 get_header_value(
00099 const CL_StringRef8 &name,
00100 const CL_StringRef8 &header_lines);
00101
00105
00106 private:
00107 CL_SharedPtr<CL_HTTPClientConnection_Impl> impl;
00109 };
00110