Fix posting of binary data using wxHTTP.
Don't use mbc_str() which can fail to convert contents of the string created using wxString::From8BitData(). Use To8BitData() instead. This fixes posting of binary data via HTTP using binary content transfer encoding. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -452,6 +452,7 @@ All:
|
|||||||
- Added wxMessageQueue::Clear().
|
- Added wxMessageQueue::Clear().
|
||||||
- Added wxConfig::Read(float *) overload (Terry Farnham).
|
- Added wxConfig::Read(float *) overload (Terry Farnham).
|
||||||
- Always use decimal point (and not the current locale separator) in wxConfig.
|
- Always use decimal point (and not the current locale separator) in wxConfig.
|
||||||
|
- Fix posting of binary data using wxHTTP (Catalin Raceanu).
|
||||||
|
|
||||||
Unix:
|
Unix:
|
||||||
|
|
||||||
|
@@ -346,7 +346,17 @@ bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
|
|||||||
Write("\r\n", 2);
|
Write("\r\n", 2);
|
||||||
|
|
||||||
if ( req == wxHTTP_POST ) {
|
if ( req == wxHTTP_POST ) {
|
||||||
Write(m_post_buf.mbc_str(), m_post_buf.Len());
|
// Post data can be arbitrary binary data when the "binary" content
|
||||||
|
// transfer encoding is used so don't assume it's ASCII only or
|
||||||
|
// NUL-terminated.
|
||||||
|
{
|
||||||
|
const wxScopedCharBuffer buf(m_post_buf.To8BitData());
|
||||||
|
Write(buf, buf.length());
|
||||||
|
} // delete the buffer before modifying the string it points to, it
|
||||||
|
// wouldn't really be a problem here even if we didn't do this
|
||||||
|
// because we won't use this buffer again but this will avoid any
|
||||||
|
// nasty surprises in the future if this code changes
|
||||||
|
|
||||||
m_post_buf = wxEmptyString;
|
m_post_buf = wxEmptyString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user