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
00029
00030 #ifndef ULXR_HTTP_CLIENT_H
00031 #define ULXR_HTTP_CLIENT_H
00032
00033 #ifndef ULXR_OMIT_TCP_STUFF
00034
00035 #include <ulxmlrpcpp/ulxmlrpcpp.h>
00036
00037
00038 namespace ulxr {
00039
00040
00041 class HttpProtocol;
00042
00043
00048 class ULXR_API_DECL0 BodyProcessor
00049 {
00050 public:
00051
00056 virtual void process(const char *buffer, unsigned len);
00057
00061 virtual ~BodyProcessor();
00062 };
00063
00064
00069 class ULXR_API_DECL0 HttpClient
00070 {
00071 public:
00072
00076 HttpClient(HttpProtocol* prot);
00077
00080 virtual ~HttpClient()
00081 {}
00082
00088 void msgPUT(const Cpp8BitString &msg,
00089 const CppString &type,
00090 const CppString &resource);
00091
00097 void filePUT(const CppString &filename,
00098 const CppString &type,
00099 const CppString &resource);
00100
00105 Cpp8BitString msgGET(const CppString &resource);
00106
00111 void fileGET(const CppString &filename, const CppString &resource);
00112
00120 Cpp8BitString msgPOST(const Cpp8BitString &msg,
00121 const CppString &type,
00122 const CppString &resource);
00123
00127 void doDELETE(const CppString &resource);
00128
00135 virtual void setMessageAuthentication(const CppString &user, const CppString &pass);
00136
00137 protected:
00138
00141 void sendAuthentication();
00142
00146 int getHttpStatus() const;
00147
00151 CppString getHttpPhrase() const;
00152
00158 CppString getHttpVersion() const;
00159
00163 virtual void interpreteHttpHeader();
00164
00168 void receiveResponse(BodyProcessor &proc);
00169
00170 private:
00171
00172 unsigned head_status;
00173 CppString head_phrase;
00174 CppString head_version;
00175 CppString http_user;
00176 CppString http_pass;
00177
00178 HttpProtocol *protocol;
00179 };
00180
00181
00182 }
00183
00184
00185 #endif // ULXR_OMIT_TCP_STUFF
00186
00187 #endif // ULXR_HTTP_CLIENT_H
00188