CGI - Llamar HTML desde un CGI

 
Vista:

Llamar HTML desde un CGI

Publicado por Master soccer (1 intervención) el 10/06/2005 03:48:33
Hola:

Alguien sabe como es posible llamar desde un CGI una página Web (HTML) y luego analizar el resultado. Dependiendo desl resultado capturado por el CGI tras llamar a la página Web es el resultado que debo mostrar.

Un ejemplo por favor.

master soccer
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Llamar una página web desde un CGI y analizar el resultado

Publicado por Alejandro (140 intervenciones) el 24/08/2023 20:25:43
Para llamar a una página web desde un script CGI en C y analizar el resultado, necesitarás utilizar bibliotecas de red como libcurl para realizar la solicitud HTTP y luego procesar la respuesta. Aquí tienes un ejemplo básico de cómo podrías hacerlo:

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
 
// Función callback para manejar la respuesta HTTP
size_t callback(void *contenido, size_t size, size_t nmemb, void *userp) {
    size_t tamañoTotal = size * nmemb;
    char *datos = (char *)contenido;
 
    // Procesar los datos aquí (por ejemplo, buscar una cadena específica)
    // Dependiendo del resultado, decide qué mostrar en la respuesta CGI
 
    return tamañoTotal;
}
 
int main() {
    // Configurar las cabeceras CGI
    printf("Content-type: text/html\n\n");
 
    // Inicializar libcurl
    CURL *curl = curl_easy_init();
    if (!curl) {
        printf("Error al inicializar libcurl\n");
        return 1;
    }
 
    // URL de la página web a llamar
    const char *url = "https://www.ejemplo.com";
 
    // Establecer opciones de libcurl
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
 
    // Realizar la solicitud HTTP
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) {
        printf("Error en la solicitud HTTP: %s\n", curl_easy_strerror(res));
    }
 
    // Finalizar libcurl
    curl_easy_cleanup(curl);
 
    return 0;
}

Este ejemplo utiliza la biblioteca libcurl para realizar una solicitud HTTP a la URL especificada y llama a la función de callback `callback` para procesar la respuesta. En la función de callback, puedes analizar los datos recibidos y tomar decisiones basadas en el contenido.

Ten en cuenta que debes tener la biblioteca libcurl instalada y configurada en tu servidor para que este ejemplo funcione. Además, este es solo un ejemplo básico y puede requerir ajustes y mejoras según tus necesidades específicas.

Recuerda que el análisis del resultado de la página web puede variar según lo que estés buscando en el contenido. Puedes utilizar funciones de manipulación de cadenas en C para buscar y analizar las partes relevantes del contenido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar