/////////////////////////////////////////////////////////////////////////////
-// Name: http.h
+// Name: wx/protocol/http.h
// Purpose: HTTP protocol
// Author: Guilhem Lavaux
// Modified by: Simo Virokannas (authentication, Dec 2005)
#include "wx/hashmap.h"
#include "wx/protocol/protocol.h"
+#include "wx/buffer.h"
class WXDLLIMPEXP_NET wxHTTP : public wxProtocol
{
int GetResponse() const { return m_http_response; }
void SetHeader(const wxString& header, const wxString& h_data);
- void SetPostBuffer(const wxString& post_buf);
+ bool SetPostText(const wxString& contentType,
+ const wxString& data,
+ const wxMBConv& conv = wxConvUTF8);
+ bool SetPostBuffer(const wxString& contentType, const wxMemoryBuffer& data);
void SetProxyMode(bool on);
+ /* Cookies */
+ wxString GetCookie(const wxString& cookie) const;
+ bool HasCookies() const { return m_cookies.size() > 0; }
+
+ // Use the other SetPostBuffer() overload or SetPostText() instead.
+ wxDEPRECATED(void SetPostBuffer(const wxString& post_buf));
+
protected:
enum wxHTTP_Req
{
typedef wxStringToStringHashMap::iterator wxHeaderIterator;
typedef wxStringToStringHashMap::const_iterator wxHeaderConstIterator;
+ typedef wxStringToStringHashMap::iterator wxCookieIterator;
+ typedef wxStringToStringHashMap::const_iterator wxCookieConstIterator;
bool BuildRequest(const wxString& path, wxHTTP_Req req);
void SendHeaders();
// find the header in m_headers
wxHeaderIterator FindHeader(const wxString& header);
wxHeaderConstIterator FindHeader(const wxString& header) const;
+ wxCookieIterator FindCookie(const wxString& cookie);
+ wxCookieConstIterator FindCookie(const wxString& cookie) const;
// deletes the header value strings
void ClearHeaders();
-
+ void ClearCookies();
// internal variables:
+ wxStringToStringHashMap m_cookies;
+
wxStringToStringHashMap m_headers;
bool m_read,
m_proxy_mode;
wxSockAddress *m_addr;
- wxString m_post_buf;
+ wxMemoryBuffer m_postBuffer;
+ wxString m_contentType;
int m_http_response;
DECLARE_DYNAMIC_CLASS(wxHTTP)
DECLARE_PROTOCOL(wxHTTP)
- DECLARE_NO_COPY_CLASS(wxHTTP)
+ wxDECLARE_NO_COPY_CLASS(wxHTTP);
};
#endif // wxUSE_PROTOCOL_HTTP