كيف يمكنني استخراج استجابة هتب عند استخدام ليبكورلب?

StackOverflow https://stackoverflow.com/questions/5009113

  •  14-11-2019
  •  | 
  •  

سؤال

في محاولة لاستخدام ليبكورلب (مجمع ج wrapper إلى ليبكورل) لنشر نموذج والحصول على الاستجابة.كل شيء يعمل ، ولكن ليس لدي أي فكرة عن كيفية الحصول برمجيا الوصول إلى استجابة من كورلب:: كائن سهل بعد الانتهاء من الصفقة هتب.بشكل أساسي:

#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>
...
curlpp::Easy foo;
foo.setOpt( new curlpp::options::Url( "http://example.com/" ) );
foo.setOpt( new curlpp::options::Verbose( true ) );
...many other options set...
foo.perform();  // this executes the HTTP transaction

عند تشغيل هذا الرمز ، لأن Verbose تم تعيينه على true أستطيع أن أرى استجابة الحصول على الإخراج إلى ستدوت.ولكن كيف يمكنني الوصول إلى الاستجابة الكاملة بدلا من التخلص منها?و كورلب:: من السهل لا يبدو أن لديها أي طرق للوصول إلى الاستجابة.

الكثير من الزيارات في جوجل مع الناس يسألون نفس السؤال ، ولكن لا ردود.القائمة البريدية كورلب هي منطقة ميتة ، وقسم أبي من موقع ويب كورلب تم كسر لمدة عام.

هل كانت مفيدة؟

المحلول

هذه هي الطريقة التي فعلت ذلك أخيرا:

// HTTP response body (not headers) will be sent directly to this stringstream
std::stringstream response;

curlpp::Easy foo;
foo.setOpt( new curlpp::options::Url( "http://www.example.com/" ) );
foo.setOpt( new curlpp::options::UserPwd( "blah:passwd" ) );
foo.setOpt( new curlpp::options::WriteStream( &response ) );

// send our request to the web server
foo.perform();

مرة واحدة foo.perform() العوائد ، هيئة الاستجابة الكاملة متاحة الآن في الدفق المقدم في WriteStream().

نصائح أخرى

ربما تم تحديث كورلب منذ طرح السؤال.أنا أستخدم هذا الذي وجدته في مثال 04.حزب الشعب الكمبودي.

#include <curlpp/Infos.hpp>

long http_code = 0;
request.perform();
http_code = curlpp::infos::ResponseCode::get(request);
if (http_code == 200) {
    std::cout << "Request succeeded, response: " << http_code << std::endl;
} else {
    std::cout << "Request failed, response: " << http_code << std::endl;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top