2012-05-21 2 views
0

Я использую LibCurl (с SSL) для извлечения XML из API. Но он дает код ошибки (9), и я не знаю, где он стоит. Может ли кто-нибудь указать мне на решение?TinyXml: ErrorCode 9

Отрывок кода:

if(success) 
    { 

     tinyxml2::XMLDocument doc; 

     //Parse doc and check returncode 
     int returnCode = doc.Parse((const char*)answer.c_str()); 
     if(returnCode == 0) 
     { 
      ... 

Содержание строки ответа:

answer "<?xml version="1.0" encoding="utf-8"?><response><retrieval_state>PE</retrieval_state><extension>.wav</extension><created>2012-05-21 16:22:58.080142</created><retrieval_log> </retrieval_log><download_url>https://com-samplesumo-api-production-files.s3.amazonaws.com/22/ff/db/22/22ffdb22-a38b-11e1-8079-fefdb24fa184.wav?Signature=jKjxnXt29atJsE0r%2BMLGvnsm1Cg%3D&amp;Expires=1337636278&amp;AWSAccessKeyId=AKIAJFTECP76EXJQW7EQ</download_url><file_uuid>22ffdb22-a38b-11e1-8079-fefdb24fa184</file_uuid><original_filename>911.wav</original_filename></response>0" std::basic_string<char,std::char_traits<char>,std::allocator<char> > 

ответ

1

Трейлинг 0 в конце контента делает XML недействителен. Согласно определению, ошибка TinyXml 9 равна TIXML_ERROR_PARSING_UNKNOWN.

+0

Doh, так глупо:/Это должно быть проблемой с libcURL, использующей HTTPS, потому что по HTTP не было завершающего 0. Спасибо, что заметили –