Ir ao conteúdo

C Erros usando libcurl - https


Ir à solução Resolvido por arfneto,

Posts recomendados

Postado

Quando executo meu código na minha máquina pelo DEVc++ eu recebo o erro "ssl-peer-certificate-or-ssh-remote-key-was-not-ok", logo, pensei em usar um compilador online, ao colocar o código já recebo outro erro "request failed couldn't resolve host name".

o código é esse (ja testei com outras API também, a que eu quero é esta https://imdb-api.com/en/API/Top250TVs/"aqui fica a chave") não deixei ali por segurança.)

#include <stdio.h>
#include <curl/curl.h>
int main(void){
	CURL *curl;
	CURLcode res;
	
	curl_global_init(CURL_GLOBAL_ALL);
	
	curl = curl_easy_init();
	if (curl){
		
		curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
		curl_easy_setopt(curl, CURLOPT_URL, "https://api.hgbrasil.com/weather?woeid=455827");		
		curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
        
        res = curl_easy_perform(curl);
        
        if (res != CURLE_OK){
        	fprintf(stderr, "resquest failed %s\n", curl_easy_strerror(res));
        }
        else{
        	printf("%c",res);
		}
		curl_easy_cleanup(curl);
	}
	curl_global_cleanup();
	return 0;
}

esse código é uma mistura que eu fiz ao ler do site do IMDB e um vídeo ensinando cURL. AMBOS A SEGUIR: FINAL DA PÁGINA -> https://imdb-api.com/api E vídeo com o código no github -> https://www.youtube.com/watch?v=x2PaEz1URso & https://github.com/josephkreydt/Church_Cal_API_Request .
 OBS: além do "meu" codigo eu ja testei os exemplos e não funcionaram.

OBS 2: Testei na nuvem pelo pc da facul.
OBS 3: Fiz o ping url no powershell e os pacotes sao enviados com sucesso e 0% de loss.
image.thumb.png.105c9a9a5c8a52a54947e9545cc307cf.png

image.png.63b6d0a3146de61954ebd3b56bccf4ba.png

Qualquer informação extra, pode pedir.

 

  • Curtir 1
Postado

num computador aqui rodei 

  • vcpkg install curl
    • isso instalou a versão 7.84, não a corrente que é 7.85
    • baixei a 7.85 do site mas não criei ainda porque é mais fácil rodar essa primeiro 🙂 
  • crie um novo projeto de console no visual studio '22 e adicionei seu código

E voltou isso: 

{"by":"woeid","valid_key":false,"results":{"temp":15,"date":"12/09/2022","time":"14:13","condition_code":"28","description":"Tempo nublado","currently":"dia","cid":"","city":"São Paulo, SP","img_id":"28","humidity":85,"wind_speedy":"5.14 km/h","sunrise":"06:06 am","sunset":"05:59 pm","condition_slug":"cloudly_day","city_name":"São Paulo","forecast":[{"date":"12/09","weekday":"Seg","max":22,"min":12,"description":"Chuvas esparsas","condition":"rain"},{"date":"13/09","weekday":"Ter","max":26,"min":15,"description":"Chuvas esparsas","condition":"rain"},{"date":"14/09","weekday":"Qua","max":21,"min":16,"description":"Chuvas esparsas","condition":"rain"},{"date":"15/09","weekday":"Qui","max":17,"min":13,"description":"Chuvas esparsas","condition":"rain"},{"date":"16/09","weekday":"Sex","max":17,"min":12,"description":"Chuvas esparsas","condition":"rain"},{"date":"17/09","weekday":"Sáb","max":19,"min":10,"description":"Tempo nublado","condition":"cloudly_day"},{"date":"18/09","weekday":"Dom","max":26,"min":10,"description":"Tempo limpo","condition":"clear_day"},{"date":"19/09","weekday":"Seg","max":32,"min":15,"description":"Tempo nublado","condition":"cloudly_day"},{"date":"20/09","weekday":"Ter","max":34,"min":18,"description":"Tempo nublado","condition":"cloudly_day"},{"date":"21/09","weekday":"Qua","max":32,"min":18,"description":"Chuva","condition":"rain"}]},"execution_time":0.0,"from_cache":true}
(process 6872) exited with code 0.
Press any key to close this window . . .

 

Talvez deva tentar com esse ambiente. É bem mais favorável.

  • Curtir 2
  • Solução
Postado

@LucasrodriguesP visual studio

Resumindo: em https://vcpkg.io/en/index.html você instala esse trem que é como se vê pelo nome um gerenciador de pacotes grátis multiplataforma

Instala o visual studio

Roda o vcpkg e uma única  vez na vida dá o comando vcpkg integrate install

Depois pode instalar qualquer pacote que tenha lá de graça e tem mais de 1500. Com uma linha

E ele baixa o pacote e compila tudo em sua máquina. A partir daí todo projeto que abrir tem acesso a todo pacote que instalar. Basta ir usando os óbvios include. Seu programa rodou igualzinho com copiar e collar

No vscode funciona também, usando a integração com o CMake, bem profissional e também multiplataforma, mas no visual studio é mais simples mesmo que use o CMake. 

 

 

  • Curtir 1
Postado

@arfneto Muitíssimo obrigado, a troca de ambiente funcionou e deu tudo certo. Tive uns obstáculos porque rodei o ''vcpkg install curl'' mas precisava rodar ''vcpkg install curl:x64-windows'' após 😂

A quem precisar instalar o vcpkg no futuro e for meio leigo também rs, baixem o git e vejam o link que o arfneto mandou ou esse vídeo https://www.youtube.com/watch?v=wRnjahwxZ8A
(caso o comando bootstrap não funcione, pode abrir com o mouse o exe)

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...