Ed Mustaine
Ed Mustaine

Reputation: 68

c++ libcurl - use the response from previous curl as parameter to another curl

I am using C++ libcurl to POST data to a webservice and everything works fine. I would like to use the webservice response (Json) as parameter to a make another POST in another webservice. Can you guys help me? Thank you very much

//FIRST POST
curl_easy_setopt(curl, CURLOPT_URL, url1.c_str());
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str());
curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
std::unique_ptr<std::string> httpResponse1(new std::string());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, httpResponse1.get());
curl_easy_perform(curl);

//SECOND POST
curl_easy_setopt(curl, CURLOPT_URL, url2.c_str());
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, httpResponse1);
curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
std::unique_ptr<std::string> httpResponse2(new std::string());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, httpResponse2.get());
curl_easy_perform(curl);

Upvotes: 0

Views: 201

Answers (1)

Daniel Stenberg
Daniel Stenberg

Reputation: 58004

I'd recommend reading and basing such work on the public libcurl examples that have what you need:

  1. Receive in memory: getinmemory.c

  2. POST from memory (and receive that response too in memory): postinmemory.c

Upvotes: 1

Related Questions