чтение https
От: despair1  
Дата: 23.10.14 12:41
Оценка:
пока перекомпиливал приложение в питоновский модуль curlcpp перестал читать:
https://zkillboard.com/api/characterID/90376921/startTime/201407120000/
хотя браузер его читает нормально

мой код почему-то в отличие от браузера возвращает с этого сервера пустую строку без вывода ошибки, хотя другие http странички читает нормально
#include <sstream>
#include <string>
#include "curl_easy.h"
#include <iostream>
using curl::curl_easy;
int read_json(const std::string& url,
        std::stringstream &s) {
    std::cout<<"begin reading json"<<std::endl;
    curl_writer writer(s);
            // Pass it to the easy constructor and watch the content returned in that file!
            curl_easy easy(writer);
            std::cout<<url<<std::endl;
            // Add some option to the easy handle
            easy.add(curl_pair<CURLoption,string>(CURLOPT_URL,url) );
            easy.add(curl_pair<CURLoption,long>(CURLOPT_FOLLOWLOCATION,1L));
            /*curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false );
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1); */
            easy.add(curl_pair<CURLoption,long>(CURLOPT_SSL_VERIFYPEER, false));
            easy.add(curl_pair<CURLoption,long>(CURLOPT_SSL_VERIFYHOST, false));
            try {
                easy.perform();
            } catch (curl_easy_exception error) {
                // If you want to get the entire error stack we can do:
                vector<pair<string,string> > errors = error.what();
                // Otherwise we could print the stack like this:
                error.print_traceback();
                return 1;
            }
            std::cout<<"json reading ok"<<std::endl;
            std::cout<<s.str()<<std::endl;
            //myfile.close();
            return 0;
}


как в curlcpp можно посмотреть статус https соединения? response сервера? хидеры?

чем кроме curlcpp можно читать в stringstream https странички?
Re: чтение https
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.10.14 17:44
Оценка:
Здравствуйте, despair1, Вы писали:

d> пока перекомпиливал приложение в питоновский модуль curlcpp перестал читать:

d> https://zkillboard.com/api/characterID/90376921/startTime/201407120000/
d> хотя браузер его читает нормально
d> мой код почему-то в отличие от браузера возвращает с этого сервера пустую строку без вывода ошибки, хотя другие http странички читает нормально

Первый из вариантов, который приходит в голову:

GET /api/characterID/90376921/startTime/201407120000/ HTTP/1.1
User-Agent: curl/7.26.0
Host: zkillboard.com
Accept: */*

HTTP/1.0 406 Non-acceptable encoding.  Please use gzip or deflate
Date: Thu, 23 Oct 2014 17:42:49 GMT
Server: Apache
Set-Cookie: PHPSESSID=6ah2jh67fnojkl2q6g033si264; path=/
Vary: Accept-Encoding
Content-Length: 0
Connection: close
Content-Type: text/html
... в первом классе мне говорили, что нужно делиться, а теперь говорят, что это незаконно ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.