• 如何用CURL并解释JSON


    CURL *curl;
    	CURLcode res;
    	struct curl_slist *headers=NULL; // init to NULL is important 
        headers = curl_slist_append(headers, "Accept: application/json");  
     
    	curl = curl_easy_init();
    	if(curl) {
    		curl_easy_setopt(curl, CURLOPT_URL, "http://web.com/api/json/123");//cant get json file
    		curl_easy_setopt(curl, CURLOPT_URL, "http://web.com/pages/123.html");//this returns entire webpage
    		curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    		curl_easy_setopt(curl, CURLOPT_RETURNTRANSFER, true);
    	    res = curl_easy_perform(curl);
    
    		if(CURLE_OK == res) {
    			char *ct;
    			// ask for the content-type
    		    res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);
    			if((CURLE_OK == res) && ct)
    		        printf("We received Content-Type: %s
    ", ct);
    		}
    	}
        // always cleanup  
        curl_easy_cleanup(curl);



    //参考答案1

    std::string ServerContent::DownloadJSO
    N(std::string URL)
    {
          
          CURL *curl;
          CURLcode res;
          struct curl_slist *headers=NULL; // init to NULL is important
          std::ostringstream oss;
           curl_slist_append(headers, "Accept: application/json");  
          curl_slist_append( headers, "Content-Type: application/json");
          curl_slist_append( headers, "charsets: utf-8");
           curl = curl_easy_init();

          if(curl) {
                curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
                curl_easy_setopt(curl, CURLOPT_URL, URL.c_str());
                curl_easy_setopt(curl, CURLOPT_HTTPGET,1);
                curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
                curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,writer);
                res = curl_easy_perform(curl);
                if(CURLE_OK == res) {
                      char *ct;        
                      res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);
                      if((CURLE_OK == res) && ct)
                            return *DownloadedResponse;
                }
          }

    }
     
  • 相关阅读:
    java8之OptionalDemo
    Java8之日期和时间demo
    bitUtils
    在线工具类网站
    linux配置nginx命令
    批处理命令:修改IP与DNS地址脚本
    Springboot解决使用@Scheduled创建任务时无法在同一时间执行多个任务的BUG
    Selenium常用命令
    火狐浏览器各版本下载地址
    Mysql安装多版本数据库
  • 原文地址:https://www.cnblogs.com/redmondfan/p/4194782.html
Copyright © 2020-2023  润新知