X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a58d5df4ef7fbbbb1c385ac63038608d49f8dfa5..77c1fa98ce364fb1c2b31a82bdd04f3a0ab75424:/include/wx/protocol/http.h diff --git a/include/wx/protocol/http.h b/include/wx/protocol/http.h index ff8a2935b5..79f37c7924 100644 --- a/include/wx/protocol/http.h +++ b/include/wx/protocol/http.h @@ -2,48 +2,90 @@ // Name: http.h // Purpose: HTTP protocol // Author: Guilhem Lavaux -// Modified by: +// Modified by: Simo Virokannas (authentication, Dec 2005) // Created: August 1997 // RCS-ID: $Id$ // Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_HTTP_H #define _WX_HTTP_H -#include "wx/list.h" +#include "wx/defs.h" + +#if wxUSE_PROTOCOL_HTTP + +#include "wx/hashmap.h" #include "wx/protocol/protocol.h" -class WXDLLEXPORT wxHTTP : public wxProtocol { - DECLARE_DYNAMIC_CLASS(wxHTTP) - DECLARE_PROTOCOL(wxHTTP) -protected: - wxProtocolError m_perr; - wxList m_headers; - bool m_read; - wxSockAddress *m_addr; +WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxString, wxStringToStringHashMap, + class WXDLLIMPEXP_NET ); + +class WXDLLIMPEXP_NET wxHTTP : public wxProtocol +{ public: wxHTTP(); - ~wxHTTP(); + virtual ~wxHTTP(); - bool Connect(const wxString& host); - bool Connect(wxSockAddress& addr, bool wait); + virtual bool Connect(const wxString& host, unsigned short port); + virtual bool Connect(const wxString& host) { return Connect(host, 0); } + virtual bool Connect(wxSockAddress& addr, bool wait); bool Abort(); wxInputStream *GetInputStream(const wxString& path); inline wxProtocolError GetError() { return m_perr; } wxString GetContentType(); void SetHeader(const wxString& header, const wxString& h_data); - wxString GetHeader(const wxString& header); + wxString GetHeader(const wxString& header) const; + void SetPostBuffer(const wxString& post_buf); + + void SetProxyMode(bool on); + + int GetResponse() { return m_http_response; } + + virtual void SetUser(const wxString& user) { m_username = user; } + virtual void SetPassword(const wxString& passwd ) { m_password = passwd; } protected: - typedef enum { + enum wxHTTP_Req + { wxHTTP_GET, + wxHTTP_POST, wxHTTP_HEAD - } wxHTTP_Req; + }; + + typedef wxStringToStringHashMap::iterator wxHeaderIterator; + typedef wxStringToStringHashMap::const_iterator wxHeaderConstIterator; + bool BuildRequest(const wxString& path, wxHTTP_Req req); void SendHeaders(); bool ParseHeaders(); + + wxString GenerateAuthString(const wxString& user, const wxString& pass) const; + + // find the header in m_headers + wxHeaderIterator FindHeader(const wxString& header); + wxHeaderConstIterator FindHeader(const wxString& header) const; + + // deletes the header value strings + void ClearHeaders(); + + wxProtocolError m_perr; + wxStringToStringHashMap m_headers; + bool m_read, + m_proxy_mode; + wxSockAddress *m_addr; + wxString m_post_buf; + int m_http_response; + wxString m_username; + wxString m_password; + + DECLARE_DYNAMIC_CLASS(wxHTTP) + DECLARE_PROTOCOL(wxHTTP) + DECLARE_NO_COPY_CLASS(wxHTTP) }; -#endif +#endif // wxUSE_PROTOCOL_HTTP + +#endif // _WX_HTTP_H +