Foros del Web » Programación para mayores de 30 ;) » C/C++ »

conversion stream a string

Estas en el tema de conversion stream a string en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un programa que envia un http request (GET) a un servidor. El servidor responde con un stream que contiene todo los datos… ...
  #1 (permalink)  
Antiguo 12/08/2008, 04:20
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
conversion stream a string

Hola, estoy haciendo un programa que envia un http request (GET) a un servidor. El servidor responde con un stream que contiene todo los datos… bueno esto es lo que tendria que hacer y no hace..

#include <stdio.h>
#include <stdint.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <curl/curl.h>
#include <errno.h>

int main(){
CURL *curl;
char *url; //10
char *stream;
char *s;

FILE *fd;
char *file;

url="http://192.168.0.63/cgi-axis/admin/serverreport.cgi";

/* get a curl handle */
curl = curl_easy_init();

if(curl) {
/* specify target URL, and note that this URL should also include a file
name, not only a directory (as you can do with GTP uploads) */
curl_easy_setopt(curl,CURLOPT_URL, url);

/* tell libcurl we can use "basic" auth */

curl_easy_setopt(curl, CURLOPT_HTTPAUTH, (long)CURLAUTH_BASIC);

/* set user name and password for the authentication */
curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass");

curl_easy_setopt(curl,CURLOPT_HTTPGET, (long)stream);
if (CURLE_OK==0){printf("OK\n");}

fd=fmemopen(stream,sizeof(stream),"r+");

if (fd==NULL){
printf("error\n");
perror("error");}
else{
printf("fmemopen OK\n");

int i;
i=fgets(s,100,fd);
printf("FIRST fgets %d \n",i); // quiero leer la primera linea del stream (que es linea vacia) para que en la segunda lectura comience a leer datos pero el valor que da I es muy grande asi que creo que devuelve todo el stream otra vez..
i=fgets(s,100,fd);
printf("SECOND fgets %d \n", i); // aqui tendria que leer algun caracter pero no i es 0

if (s!=NULL){
printf("%s",s); // lo que sale por pantalla es algo asi… �� asi que supongo que es un stream cuando deberia de ser un string
}

}
}
/* always cleanup */
curl_easy_cleanup(curl);

fclose(fd);

return 0;
}

Ademas me da unos warnings a la hora de compilar..

assignment makes pointer from integer without a cast --> por el fmemopen
assignment makes integer from pointer without a cast --> uno por cada gets

Me podeis ayudar con esto????

gratzie mile
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:47.