Add SetPostBuffer(wxMemoryBuffer) and SetPostText() to wxHTTP.

This allows to post binary data or text data in e.g. UTF-8 encoding (which is
by far the most common case) easily.

Deprecate the existing SetPostBuffer(wxString) as it didn't explicitly specify
the encoding to use for the data to be posted.

Closes #13870.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-01-20 12:22:25 +00:00
parent 846b6c8658
commit ab9d6a4c8b
4 changed files with 109 additions and 23 deletions

View File

@@ -17,6 +17,7 @@
#include "wx/hashmap.h"
#include "wx/protocol/protocol.h"
#include "wx/buffer.h"
class WXDLLIMPEXP_NET wxHTTP : public wxProtocol
{
@@ -36,13 +37,19 @@ public:
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
{
@@ -80,7 +87,8 @@ protected:
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)