当前位置:编程学习 > wap >>

让 cocos2d-x 的 CCHttpRequest 支持https

由于游戏用到了网络头像, 今天发现换成facebook登陆后头像下载失败, 2dx默认的没有支持https, 于是找到 network/
HttpClient.cpp
 
 
[cpp]  
  
[cpp]  
int processGetTask(CCHttpRequest *request, write_callback callback, void *stream, int *responseCode)  
{  
    CURLcode code = CURL_LAST;  
    CURL *curl = curl_easy_init();  
      
    do {  
        if (!configureCURL(curl))   
        {  
            break;  
        }  
          
        /* handle custom header data */  
        /* create curl linked list */  
        struct curl_slist *cHeaders=NULL;  
        /* get custom header data (if set) */  
        std::vector<std::string> headers=request->getHeaders();  
            if(!headers.empty())  
            {                 
                    for(std::vector<std::string>::iterator it=headers.begin();it!=headers.end();it++)  
                    {  
              /* append custom headers one by one */  
                        cHeaders=curl_slist_append(cHeaders,it->c_str());  
                    }  
           /* set custom headers for curl */  
                    code = curl_easy_setopt(curl, CURLOPT_HTTPHEADER, cHeaders);  
                    if (code != CURLE_OK) {  
                        break;  
                    }  
            }  
                
        code = curl_easy_setopt(curl, CURLOPT_URL, request->getUrl());  
        if (code != CURLE_OK)   
        {  
            break;  
        }  
          
        code = curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, request->getUrl());  
        if (code != CURLE_OK)  
        {  
            break;  
        }  
  
        code = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);  
        if (code != CURLE_OK)   
        {  
            break;  
        }  
          
        code = curl_easy_setopt(curl, CURLOPT_WRITEDATA, stream);  
        if (code != CURLE_OK)   
        {  
            break;  
        }  
          
        code = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);  
        if (code != CURLE_OK) {  
            break;  
        }  
          
        code = curl_easy_perform(curl);  
        if (code != CURLE_OK)   
        {  
            break;  
        }  
          
        /* free the linked list for header data */  
        curl_slist_free_all(cHeaders);  
  
        code = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, responseCode);   
        if (code != CURLE_OK || *responseCode != 200)   
        {  
            code = CURLE_HTTP_RETURNED_ERROR;  
        }  
    } while (0);  
      
    if (curl) {  
        curl_easy_cleanup(curl);  
    }  
      
    return (code == CURLE_OK ? 0 : 1);  
}  
  
//Process POST Request  
int processPostTask(CCHttpRequest *request, write_callback callback, void *stream, int32_t *responseCode)  
{  
    CURLcode code = CURL_LAST;  
    CURL *curl = curl_easy_init();  
      
    do {  
        if (!configureCURL(curl)) {  
            break;  
        }  
          
        /* handle custom header data */  
        /* create curl linked list */  
        struct curl_slist *cHeaders=NULL;  
        /* get custom header data (if set) */  
            std::vector<std::string> headers=request->getHeaders();  
            if(!headers.empty())  
            {                 
                    for(std::vector<std::string>::iterator it=headers.begin();it!=headers.end();it++)  
                    {  
              /* append custom headers one by one */  
                        cHeaders=curl_slist_append(cHeaders,it->c_str());  
                    }  
           /* set
补充:移动开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,