1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/protocol/http.h
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"
20 #include "wx/buffer.h"
22 class WXDLLIMPEXP_NET wxHTTP
: public wxProtocol
28 virtual bool Connect(const wxString
& host
, unsigned short port
);
29 virtual bool Connect(const wxString
& host
) { return Connect(host
, 0); }
30 virtual bool Connect(const wxSockAddress
& addr
, bool wait
);
33 wxInputStream
*GetInputStream(const wxString
& path
);
35 wxString
GetContentType() const;
36 wxString
GetHeader(const wxString
& header
) const;
37 int GetResponse() const { return m_http_response
; }
39 void SetMethod(const wxString
& method
) { m_method
= method
; }
40 void SetHeader(const wxString
& header
, const wxString
& h_data
);
41 bool SetPostText(const wxString
& contentType
,
43 const wxMBConv
& conv
= wxConvUTF8
);
44 bool SetPostBuffer(const wxString
& contentType
, const wxMemoryBuffer
& data
);
45 void SetProxyMode(bool on
);
48 wxString
GetCookie(const wxString
& cookie
) const;
49 bool HasCookies() const { return m_cookies
.size() > 0; }
51 // Use the other SetPostBuffer() overload or SetPostText() instead.
52 wxDEPRECATED(void SetPostBuffer(const wxString
& post_buf
));
55 typedef wxStringToStringHashMap::iterator wxHeaderIterator
;
56 typedef wxStringToStringHashMap::const_iterator wxHeaderConstIterator
;
57 typedef wxStringToStringHashMap::iterator wxCookieIterator
;
58 typedef wxStringToStringHashMap::const_iterator wxCookieConstIterator
;
60 bool BuildRequest(const wxString
& path
, const wxString
& method
);
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;
69 wxCookieIterator
FindCookie(const wxString
& cookie
);
70 wxCookieConstIterator
FindCookie(const wxString
& cookie
) const;
72 // deletes the header value strings
76 // internal variables:
79 wxStringToStringHashMap m_cookies
;
81 wxStringToStringHashMap m_headers
;
84 wxSockAddress
*m_addr
;
85 wxMemoryBuffer m_postBuffer
;
86 wxString m_contentType
;
89 DECLARE_DYNAMIC_CLASS(wxHTTP
)
90 DECLARE_PROTOCOL(wxHTTP
)
91 wxDECLARE_NO_COPY_CLASS(wxHTTP
);
94 #endif // wxUSE_PROTOCOL_HTTP