2010-04-22 101 views
1

我有一個代碼發送帶有登錄憑證的Form Post到一個網頁。它看起來像這樣在libcurl中處理響應

CURL *curl; 
    CURLcode res; 

    struct curl_httppost *formpost=NULL; 
    struct curl_httppost *lastptr=NULL; 
    struct curl_slist *headerlist=NULL; 
    static const char buf[] = "Expect:"; 

    curl_global_init(CURL_GLOBAL_ALL); 

    /* Fill in the username */ 
    curl_formadd(&formpost, 
      &lastptr, 
      CURLFORM_COPYNAME, "user", 
      CURLFORM_COPYCONTENTS, "username", 
      CURLFORM_END); 

    /* Fill in the password */ 
    curl_formadd(&formpost, 
      &lastptr, 
      CURLFORM_COPYNAME, "pass", 
      CURLFORM_COPYCONTENTS, "password", 
      CURLFORM_END); 


    /* Fill in the submit field too, even if this is rarely needed */ 
    curl_formadd(&formpost, 
       &lastptr, 
       CURLFORM_COPYNAME, "submit", 
       CURLFORM_COPYCONTENTS, "send", 
       CURLFORM_END); 

    curl = curl_easy_init(); 
    /* initalize custom header list (stating that Expect: 100-continue is not 
    wanted */ 
    headerlist = curl_slist_append(headerlist, buf); 
    if(curl) { 
    /* what URL that receives this POST */ 
    curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:8000/index.html"); 

     /* only disable 100-continue header if explicitly requested */ 
     curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); 
    curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); 
    res = curl_easy_perform(curl); 

    /* always cleanup */ 
    curl_easy_cleanup(curl); 

    /* then cleanup the formpost chain */ 
    curl_formfree(formpost); 
    /* free slist */ 
    curl_slist_free_all (headerlist); 
    } 

現在我需要知道的是我如何處理我從服務器回來的迴應?我需要將響應存儲到一個字符串中,然後處理它。

回答