1. 程式人生 > >使用curl庫獲取重定向之後的url

使用curl庫獲取重定向之後的url

示例程式碼如下:

#include<iostream>
#include<string>

using namespace std;

#pragma comment(lib, "libcurl_imp.lib")

void download(string urlHttp)
{
    CURL* curl = NULL;
    CURLcode res = CURLE_OK;
    curl = curl_easy_init();
    string response;
    if(curl)
    {
        curl_easy_setopt(curl, CURLOPT_URL,urlHttp.c_str());
        res = curl_easy_perform(curl);
        cout<<"res = "<<res<<endl;
        CURLcode code;
        char* url = NULL;
        long rescode = 0;
        code = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &rescode);
        cout<<"code = "<<code<<",rescode = "<<rescode<<endl;
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        code = curl_easy_getinfo(curl, CURLINFO_REDIRECT_URL, &url);
        cout<<"code = "<<code<<endl;
        if(url)
        {
            cout<<"Redirect url = "<<url<<endl;
        }
    }
    curl_easy_cleanup(curl);
}

int main(int argc, char* argv[])
{
    if(argc < 2)
    {
        cout<<"引數錯誤!\n";
        return -1;
    }
    string urlHttp(argv[1]);
    download(urlHttp);
    return 0;
}

參考資料: