Buenas
tengo una pagina web MIWEB con el codigo
<?php
$Caracter = 'S';
echo $Caracter;
?>
Quiero leer desde mi aplicacion el valor de $Caracter y codifico
char Buffer;
DWORD BytesRead=0;
const ::HINTERNET sesion = InternetOpen("agent",INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,0);
if(sesion!=NULL)
{
AnsiString Url = "http://www.MIWEB.ES";
const ::HINTERNET handle = ::InternetOpenUrl(sesion,Url.c_str(),NULL,0, INTERNET_FLAG_RELOAD, 0);
if(handle!=NULL)
{
while(InternetReadFile(handle,&Buffer,sizeof(Byte),&BytesRead))
{
if(BytesRead==0){break;}
}
}
InternetCloseHandle(handle);
}
else
{
}
InternetCloseHandle(sesion);
Pero Buffer ='/n'
Que Hago MAL Gracias.
Estas usando mal la funcion InternetReadFile
BOOLAPI InternetReadFile(
HINTERNET hFile,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead
);
Parámetros
hFile: Identificador devuelto de una llamada anterior a InternetOpenUrl, FtpOpenFile o HttpOpenRequest.
lpBuffer: Puntero a un búfer que recibe los datos.
dwNumberOfBytesToRead: Número de bytes a leer.
lpdwNumberOfBytesRead: Puntero a una variable que recibe el número de bytes leídos. InternetReadFile establece este valor en cero antes de realizar cualquier trabajo o comprobación de errores.
Valor de retorno
Devuelve TRUE si tiene éxito o FALSE de lo contrario. Para obtener información de error extendida, llame a GetLastError. Una aplicación también puede usar InternetGetLastResponseInfo cuando sea necesario.
En tu caso tienes varios errores en tus parametros:
1- Estas usando el parametro lpBuffer como un char, cuando deberia ser un buffer o un array de chars, ej: char Buffer[MAX_BUFFER], o simplemente usar memoria dinamica
2- Estas usando el parametro dwNumberOfBytesToRead con valor 1 (sizeof(char) == 1). Necesitas especificar una mayor cantidad de bytes a leer, como una constante ej: #define MAX_BUFFER 1024
3- Al final tu linea podria quedar algo como:
while (InternetReadFile(handle, Buffer, MAX_BUFFER, BytesRead) == TRUE && BytesRead > 0)
{
// tu codigo aqui
}
Muchisimas gracias por contestar...
Solucionado.
Gracias otra vez.