X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a737331db68b754c8bf31fa0a15f6d1f207b40bf..cc985face55ed02c310860afefc8e6d656fb849d:/src/common/http.cpp diff --git a/src/common/http.cpp b/src/common/http.cpp index 38cb120b72..b433e4f013 100644 --- a/src/common/http.cpp +++ b/src/common/http.cpp @@ -10,27 +10,25 @@ ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ -#pragma implementation "http.h" + #pragma implementation "http.h" #endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #if wxUSE_SOCKETS -#ifndef WX_PRECOMP -#endif - #include #include #include "wx/string.h" #include "wx/tokenzr.h" #include "wx/socket.h" #include "wx/protocol/protocol.h" +#include "wx/url.h" #include "wx/protocol/http.h" #include "wx/sckstrm.h" @@ -129,9 +127,8 @@ bool wxHTTP::ParseHeaders() if (line.Length() == 0) break; - printf("Header: %s\n", WXSTRINGCAST line); tokenzr.SetString(line, " :\t\n\r"); - if (!tokenzr.HasMoreToken()) + if (!tokenzr.HasMoreTokens()) return FALSE; wxString left_str = tokenzr.GetNextToken(); @@ -182,29 +179,29 @@ bool wxHTTP::Connect(wxSockAddress& addr, bool WXUNUSED(wait)) bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req) { - char *tmp_buf; - char buf[HTTP_BSIZE]; - const wxWX2MBbuf pathbuf = path.mb_str(); + wxChar *tmp_buf; + wxCharBuffer buf(""); + const wxWX2MBbuf pathbuf; + wxString tmp_str; switch (req) { case wxHTTP_GET: - tmp_buf = "GET"; + tmp_buf = _T("GET"); break; default: return FALSE; } SaveState(); + SetFlags(NONE); Notify(FALSE); - SetFlags(WAITALL); - sprintf(buf, "%s %s HTTP/1.0\n\r", tmp_buf, (const char*)pathbuf); - Write(buf, strlen(buf)); + tmp_str = wxURL::ConvertToValidURI(path); + wxSprintf(buf, _T("%s %s\n\r"), tmp_buf, tmp_str.GetData()); + pathbuf = wxConvLibc.cWX2MB(buf); + Write(pathbuf, strlen(pathbuf)); SendHeaders(); - sprintf(buf, "\n\r"); - Write(buf, strlen(buf)); - - wxString tmp_str; + Write("\n\r", 2); m_error = GetLine(this, tmp_str); if (m_error != wxPROTO_NOERR) { @@ -275,6 +272,7 @@ wxInputStream *wxHTTP::GetInputStream(const wxString& path) if (!GetHeader(_T("Content-Length")).IsEmpty()) inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(_T("Content-Length"))); + SetFlags(WAITALL); return inp_stream; }