diff options
Diffstat (limited to 'wx+/http.h')
-rw-r--r-- | wx+/http.h | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -17,9 +17,32 @@ namespace zen Windows: WinInet-based => may be called from worker thread Linux: wxWidgets-based => don't call from worker thread */ -std::string sendHttpPost(const std::wstring& url, const std::wstring& userAgent, const std::vector<std::pair<std::string, std::string>>& postParams); //throw SysError -std::string sendHttpGet (const std::wstring& url, const std::wstring& userAgent); //throw SysError +class HttpInputStream +{ +public: + std::string readAll(); //throw SysError + + //support zen/serialize.h Unbuffered Input Stream Concept + size_t tryRead(void* buffer, size_t bytesToRead); //throw SysError; may return short, only 0 means EOF! => CONTRACT: bytesToRead > 0! + size_t getBlockSize() const { return 64 * 1024; } + + class Impl; + HttpInputStream(std::unique_ptr<Impl>&& pimpl); + HttpInputStream(HttpInputStream&&) = default; + ~HttpInputStream(); + +private: + std::unique_ptr<Impl> pimpl_; +}; + + +HttpInputStream sendHttpGet (const std::wstring& url, const std::wstring& userAgent); //throw SysError +HttpInputStream sendHttpPost(const std::wstring& url, const std::wstring& userAgent, + const std::vector<std::pair<std::string, std::string>>& postParams); //throw SysError bool internetIsAlive(); //noexcept + +std::string xWwwFormUrlEncode(const std::vector<std::pair<std::string, std::string>>& paramPairs); +std::vector<std::pair<std::string, std::string>> xWwwFormUrlDecode(const std::string& str); } #endif //HTTP_h_879083425703425702 |