Ir ao conteúdo
  • Cadastre-se

C Erros usando libcurl - https


LucasrodriguesP
Ir à solução Resolvido por arfneto,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Solução

@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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!