c++使用curl库访问服务器并获取应答结果
size_t http_data_writer(void* data, size_t size, size_t nmemb, void* content) { long totalSize = size*nmemb; std::string* symbolBuffer = (std::string*)content; if(symbolBuffer) { symbolBuffer->append((char *)data, ((char*)data)+totalSize); } return totalSize; } bool AccessWeb(char* szUrl) { CURL* curl = NULL; curl=curl_easy_init(); CURLcode code; // 设置Url code = curl_easy_setopt(curl, CURLOPT_URL, szUrl); // 设置post的json数据 char szPost[64] = "msg=hello"; code = curl_easy_setopt(curl, CURLOPT_POSTFIELDS, szPost); // 设置回调函数 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_func); //设置写数据 std::string strData; curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&strData); // 执行请求 code = curl_easy_perform(curl); if(code == CURLcode::CURLE_OK) { long responseCode = 0; curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &responseCode); if (responseCode < 200 || responseCode >= 300 || strData.empty()) { return false; } //下面可以对应答的数据进行处理了 // strData } // 清除curl对象 curl_easy_cleanup(curl); return true; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。