Обработка ответов в libcurl - PullRequest
1 голос
/ 22 апреля 2010

У меня есть код для отправки формы сообщения с учетными данными для входа на веб-страницу. это выглядит так

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);
  }

теперь мне нужно знать, как мне обрабатывать ответы, которые я получаю с сервера? мне нужно сохранить ответ в строку, а затем работать над ней.

1 Ответ

3 голосов
/ 22 апреля 2010

Этот вопрос показывает, как получить данные ответа строка

Короче говоря, вам нужно использовать curl_easy_setopt для установки опции CURLOPT_WRITEFUNCTION для функции обратного вызова.

...