zoukankan      html  css  js  c++  java
  • 如何用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;
                }
          }

    }
     
  • 相关阅读:
    【CSP2019模拟】题解
    【Codeforces 868 G】— El Toll Caves(类欧几里得)
    【Codeforces 868 G】— El Toll Caves(类欧几里得)
    如何写出规范的代码? 做一名追求极致的软件工程师!
    浏览器原理
    URL(待整合到HTTP书中哦)
    FTP服务器
    background-image 和 img
    XML的总结学习
    逻辑思维 代码逻辑
  • 原文地址:https://www.cnblogs.com/redmondfan/p/4194782.html
Copyright © 2011-2022 走看看