X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/371a5b4e62eb415107e045588f614fa49e866e78..b1e88286a282de7b2d542483f96f32b91c85e3cb:/include/wx/protocol/http.h?ds=inline diff --git a/include/wx/protocol/http.h b/include/wx/protocol/http.h index 5cc6e8e5bb..b3ee9a5384 100644 --- a/include/wx/protocol/http.h +++ b/include/wx/protocol/http.h @@ -15,22 +15,19 @@ #if wxUSE_PROTOCOL_HTTP -#include "wx/list.h" +#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, m_proxy_mode; - wxSockAddress *m_addr; +WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxString, wxStringToStringHashMap, + class WXDLLIMPEXP_NET ); + +class WXDLLIMPEXP_NET wxHTTP : public wxProtocol +{ public: wxHTTP(); ~wxHTTP(); - bool Connect(const wxString& host); + bool Connect(const wxString& host, unsigned short port = 0); bool Connect(wxSockAddress& addr, bool wait); bool Abort(); wxInputStream *GetInputStream(const wxString& path); @@ -38,23 +35,41 @@ public: 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); protected: - typedef enum { + enum wxHTTP_Req + { wxHTTP_GET, + wxHTTP_POST, wxHTTP_HEAD - } wxHTTP_Req; + }; + + typedef wxStringToStringHashMap::iterator wxHeaderIterator; + bool BuildRequest(const wxString& path, wxHTTP_Req req); void SendHeaders(); bool ParseHeaders(); + // find the header in m_headers + wxHeaderIterator FindHeader(const wxString& header) const; + // deletes the header value strings void ClearHeaders(); - DECLARE_NO_COPY_CLASS(wxHTTP) + wxProtocolError m_perr; + wxStringToStringHashMap m_headers; + bool m_read, + m_proxy_mode; + wxSockAddress *m_addr; + wxString m_post_buf; + + DECLARE_DYNAMIC_CLASS(wxHTTP) + DECLARE_PROTOCOL(wxHTTP) + DECLARE_NO_COPY_CLASS(wxHTTP) }; #endif // wxUSE_PROTOCOL_HTTP