IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Question sur libcurl ?


Sujet :

Windows

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    923
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 923
    Par défaut Question sur libcurl ?
    Bonjour,

    Je voudrais savoir si les API libcurl fonctionnent ?


    Il faut reconnaître que c'est pas simple d'encoder décoder SSL, je suis compréhensif.


    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    // gethttps.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
     
    #include "pch.h"
     
    //#include "http_download.hh"
    #include <Windows.h>
    #include <curl/curl.h>
    //#include <sstream>
    //#include <stdexcept>
     
    //using namespace std;
     
    typedef struct {
    	BYTE data[1 * 1024 * 1024];
    	DWORD pos;
    }TBUF,*PBUF;
     
    TBUF bb;
     
    size_t callback(void* contents, size_t size, size_t nmemb, void* user)
    {
    	PBUF pb = (PBUF)user;
     
    	size_t sizeIncrease = size * nmemb;
    	memcpy(pb->data + pb->pos, contents, sizeIncrease);
    	pb->pos += sizeIncrease;
    	return sizeIncrease;
    }
     
    void download(wchar_t* url, long* responseCode)
    {
    	//vector<char> data;
     
    	curl_global_init(CURL_GLOBAL_ALL);
    	CURL* handle = curl_easy_init();
    	curl_easy_setopt(handle, CURLOPT_URL, url);
    	curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, callback);
    	curl_easy_setopt(handle, CURLOPT_WRITEDATA, &bb);
    	curl_easy_setopt(handle, CURLOPT_USERAGENT, "libcurl-agent/1.0");
    	CURLcode result = curl_easy_perform(handle);
    	if (responseCode != nullptr)
    		curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, responseCode);
    	curl_easy_cleanup(handle);
    	curl_global_cleanup();
     
    	if (result != CURLE_OK)
    	{
    		/*stringstream err;
    		err << "Error downloading from URL \"" << url << "\": " << curl_easy_strerror(result);
    		throw runtime_error(err.str());*/
    	}
     
    	//return move(data);
    }
     
     
    int main()
    {
    	bb.pos = 0;
    	long rcode = 0;
    	download((wchar_t*)L"https://www.google.fr/?gws_rd=ssl", &rcode);
    	if (bb.pos > 0)
    	{
    		HANDLE f = CreateFileW(L"test.htm", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
    		if (f != INVALID_HANDLE_VALUE)
    		{
    			DWORD dt = 0;
    			WriteFile(f, bb.data, bb.pos, &dt, NULL);
    			CloseHandle(f);
    		}
    	}
    }


    Ça me retourne tout le temps : CURLE_COULDNT_RESOLVE_HOST ! que internet soit connecté ou pas !

    Pour ceux qui veulent extraire en programmation une page html via https SSL .... désolé ! seul le navigateur Firefox Internet explorer, chrome peuvent le faire.


    Merci

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    923
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 923
    Par défaut
    J'ai compiler libcurl avec les directives de compilations ssl (openssl), en installant openssl depuis https://www.npcglib.org/~stathis/blo...piled-openssl/
    .
    Ca compile.



    Je teste :

    Plus d'erreur :CURLE_COULDNT_RESOLVE_HOST , ca me renvoie CURLE_PEER_FAILED_VERIFICATION

    Mais ca me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     *   Trying 216.58.204.131:443...
    * TCP_NODELAY set
    * Connected to www.google.fr (216.58.204.131) port 443 (#0)
    * ALPN, offering http/1.1
    * SSL certificate problem: unable to get local issuer certificate
    * Closing connection 0
    Pourtant sur le navigateur firefox , il n'y à pas cette erreur !!!!!

    Google rien ... trouver ....

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    923
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 923
    Par défaut
    J'ai essayer de recompiler libcurl avec option windows SSPI,
    ca à l'air de fonctionner.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur les librairies libcurl et libxml2
    Par willowcat dans le forum Linux
    Réponses: 0
    Dernier message: 20/07/2007, 14h32
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo