#ifndef DATAT_RANS_HPP_ #define DATAT_RANS_HPP_ #include #include #include #include #include #include #include #include "common/global.hpp" #define BUFFER_SIZE 4096 #define IP "127.0.0.1" #define PORT 12345 struct DownloadFile { const char *filename; FILE *stream; }; class DataTrans { public: DataTrans(); ~DataTrans(); /** * @brief HTTP POST请求 * @param strUrl 输入参数,请求的Url地址,如:http://www.baidu.com * @param strPost 输入参数,使用如下格式para1=val1¶2=val2&… * @param strResponse 输出参数,返回的内容 * @return 返回是否Post成功 */ int Post(const std::string &strUrl, const std::string &strPost, std::string &strResponse); /** * @brief HTTP GET请求 * @param strUrl 输入参数,请求的Url地址,如:http://www.baidu.com * @param strResponse 输出参数,返回的内容 * @return 返回是否Post成功 */ int Get(const std::string &strUrl, std::string &strResponse); /** * @brief HTTPS POST请求,无证书版本 * @param strUrl 输入参数,请求的Url地址,如:https://www.baidu.com * @param strPost 输入参数,使用如下格式para1=val1¶2=val2&… * @param strResponse 输出参数,返回的内容 * @param pCaPath 输入参数,为CA证书的路径.如果输入为NULL,则不验证服务器端证书的有效性. * @return 返回是否Post成功 */ int Posts(const std::string &strUrl, const std::string &strPost, std::string &strResponse, const char *pCaPath = NULL); /** * @brief HTTPS GET请求,无证书版本 * @param strUrl 输入参数,请求的Url地址,如:https://www.baidu.com * @param strResponse 输出参数,返回的内容 * @param pCaPath 输入参数,为CA证书的路径.如果输入为NULL,则不验证服务器端证书的有效性. * @return 返回是否Post成功 */ int Gets(const std::string &strUrl, std::string &strResponse, const char *pCaPath = NULL); /** * @brief HTTP 上传文件 * @param strUrl 输入参数,请求的Url地址,如:http://localcast:8080/source * @param strResponse 输出参数,返回的内容 * @param filename 文件的绝对地址,如/home/usr/cidw.log * @return 函数返回0执行成功 */ int upload_file(const std::string &strUrl, const std::string &filename, std::string &strResponse); /** * @brief 下载文件,如果板子支持wget下载会方便很多接口保留,待确认后在开发 * @param strUrl 输入参数,请求的Url地址,如:http://localcast:8080/source * @param strResponse 输出参数,返回的内容 * @param filename 文件的绝对地址,如/home/usr/cidw.log * @return 函数返回0执行成功 */ // int download_file(const std::string &strUrl, const std::string &filename, std::string &strResponse); int download(char *pFilename, std::string &strUrl, std::string &strResponse, bool bDownload); int dl_curl_post_req(const std::string &url, const std::string &postParams, std::string &filename); void SetDebug(bool bDebug); private: bool debug_; }; typedef boost::container::dtl::singleton_default data_trans; #endif // DATAT_RANS_HPP_