1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: HTTP protocol
4 // Author: Guilhem Lavaux
5 // Modified by: Simo Virokannas (authentication, Dec 2005)
6 // Created: August 1997
8 // Copyright: (c) 1997, 1998 Guilhem Lavaux
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
16 #if wxUSE_PROTOCOL_HTTP
18 #include "wx/hashmap.h"
19 #include "wx/protocol/protocol.h"
21 WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxString
, wxStringToStringHashMap
,
22 class WXDLLIMPEXP_NET
);
24 class WXDLLIMPEXP_NET wxHTTP
: public wxProtocol
30 virtual bool Connect(const wxString
& host
, unsigned short port
);
31 virtual bool Connect(const wxString
& host
) { return Connect(host
, 0); }
32 virtual bool Connect(wxSockAddress
& addr
, bool wait
);
34 wxInputStream
*GetInputStream(const wxString
& path
);
35 inline wxProtocolError
GetError() { return m_perr
; }
36 wxString
GetContentType();
38 void SetHeader(const wxString
& header
, const wxString
& h_data
);
39 wxString
GetHeader(const wxString
& header
) const;
40 void SetPostBuffer(const wxString
& post_buf
);
42 void SetProxyMode(bool on
);
44 int GetResponse() { return m_http_response
; }
46 virtual void SetUser(const wxString
& user
) { m_username
= user
; }
47 virtual void SetPassword(const wxString
& passwd
) { m_password
= passwd
; }
57 typedef wxStringToStringHashMap::iterator wxHeaderIterator
;
58 typedef wxStringToStringHashMap::const_iterator wxHeaderConstIterator
;
60 bool BuildRequest(const wxString
& path
, wxHTTP_Req req
);
64 wxString
GenerateAuthString(const wxString
& user
, const wxString
& pass
) const;
66 // find the header in m_headers
67 wxHeaderIterator
FindHeader(const wxString
& header
);
68 wxHeaderConstIterator
FindHeader(const wxString
& header
) const;
70 // deletes the header value strings
73 wxProtocolError m_perr
;
74 wxStringToStringHashMap m_headers
;
77 wxSockAddress
*m_addr
;
83 DECLARE_DYNAMIC_CLASS(wxHTTP
)
84 DECLARE_PROTOCOL(wxHTTP
)
85 DECLARE_NO_COPY_CLASS(wxHTTP
)
88 #endif // wxUSE_PROTOCOL_HTTP