bool wxCurlHTTP::Put(wxInputStream& buffer, const wxString& szRemoteFile /*= wxEmptyString*/) { curl_off_t iSize = 0; if(m_pCURL && buffer.IsOk()) { SetCurlHandleToDefaults(szRemoteFile); iSize = buffer.GetSize(); if(iSize == (~(size_t)0)) // wxCurlHTTP does not know how to upload unknown length streams. return false; SetOpt(CURLOPT_UPLOAD, TRUE); SetOpt(CURLOPT_PUT, TRUE); SetStreamReadFunction(buffer); SetOpt(CURLOPT_INFILESIZE_LARGE, (curl_off_t)iSize); SetStringWriteFunction(m_szResponseBody); if(Perform()) { return IsResponseOk(); } } return false; }
bool wxCurlHTTP::Trace(const wxString& szRemoteFile /*= wxEmptyString*/) { if(m_pCURL) { SetCurlHandleToDefaults(szRemoteFile); m_arrHeaders.Add(wxT("Content-type: message/http")); SetHeaders(); SetOpt(CURLOPT_CUSTOMREQUEST, "TRACE"); SetStringWriteFunction(m_szResponseBody); if(Perform()) { ResetHeaders(); return IsResponseOk(); } ResetHeaders(); } return false; }
bool wxCurlHTTP::Delete(const wxString& szRemoteLoc /*= wxEmptyString*/) { if(m_pCURL) { SetCurlHandleToDefaults(szRemoteLoc); SetOpt(CURLOPT_CUSTOMREQUEST, "DELETE"); SetStringWriteFunction(m_szResponseBody); if(Perform()) { return IsResponseOk(); } } return false; }
bool wxCurlHTTP::Get(wxOutputStream& buffer, const wxString& szRemoteFile /*=wxEmptyString*/) { if(m_pCURL && buffer.IsOk()) { SetCurlHandleToDefaults(szRemoteFile); SetOpt(CURLOPT_HTTPGET, TRUE); SetStreamWriteFunction(buffer); if(Perform()) { return IsResponseOk(); } } return false; }
bool wxCurlHTTP::Head(const wxString& szRemoteFile /*= wxEmptyString*/) { if(m_pCURL) { SetCurlHandleToDefaults(szRemoteFile); SetOpt(CURLOPT_HTTPGET, TRUE); SetOpt(CURLOPT_NOBODY, TRUE); if(Perform()) { return IsResponseOk(); } } return false; }
bool wxCurlHTTP::Post(const wxString& szRemoteFile /*= wxEmptyString*/) { if(m_pCURL && m_pPostHead && m_pPostTail) { SetCurlHandleToDefaults(szRemoteFile); SetOpt(CURLOPT_POST, TRUE); SetOpt(CURLOPT_HTTPPOST, m_pPostHead); SetStringWriteFunction(m_szResponseBody); if(Perform()) { return IsResponseOk(); } } return false; }