Abrir um arquivo URL pelaLlinguagem C

1. Abrir um arquivo URL pelaLlinguagem C

Jorge Luiz Gouveia Sousa
JorgeLuizGS

(usa Ubuntu)

Enviado em 18/04/2026 - 18:01h

Olá!
O chatGPT cuspiu esse código na Linguagem C!
Estou usando o gcc do MSYS2 no Windows. Não está indentificando o pacote

#include <curl/curl.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>

// Estrutura para armazenar a resposta
struct Memory {
char *data;
size_t size;
};

// Callback para capturar o corpo da resposta
size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) {
size_t total_size = size * nmemb;
struct Memory *mem = (struct Memory *)userp;

char *ptr = realloc(mem->data, mem->size + total_size + 1);
if(ptr == NULL) {
printf("Erro de memória\n");
return 0;
}

mem->data = ptr;
memcpy(&(mem->data[mem->size]), contents, total_size);
mem->size += total_size;
mem->data[mem->size] = '\0';

return total_size;
}

void rURLConnection(const char *url) {
CURL *curl;
CURLcode res;

struct Memory chunk;
chunk.data = malloc(1); // inicializa vazio
chunk.size = 0;

curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();

if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);

// Header User-Agent
curl_easy_setopt(curl, CURLOPT_USERAGENT,
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");

// Callback para capturar resposta
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);

// Executa requisição
res = curl_easy_perform(curl);

if(res != CURLE_OK) {
fprintf(stderr, "Erro: %s\n", curl_easy_strerror(res));
} else {
long status;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &status);

printf("Status: %ld\n", status);
printf("%s\n", chunk.data);
}

curl_easy_cleanup(curl);
}

free(chunk.data);
curl_global_cleanup();
}

int main() {
rURLConnection("https://www.ouka.com.br/x-index.html");
return 0;
}


Abrir um arquivo URL pelo Java funciona normalmente, veja:
Mas quero que o código rode na Linguagem C

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class JavaTeste {
public static void main(String[] args) {
try {
rURLConnection("https://www.ouka.com.br/x-index.html");
} catch (Exception error) {
System.out.println("A URL não Funcionou");
System.out.println(error.getMessage());
}
}

public static void rURLConnection(String VarURL) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(VarURL))
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")
.GET()
.build();

HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());

System.out.println("Status: " + response.statusCode());
System.out.println(response.body());
}
}



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts