Fernando:
El 10/03/2012 3:16, Fernando Leal escribió:
> Es una página web en asp.net
> Tiene un campo para escribir un número
> y un botón Consultar
cuando abras la página en el navegador, seguramente abrá una forma de
ver el código fuente de la página. Busca la etiqueta HTML <FORM> que nos
dirá si el método es GET o POST, y la URL que recibe los datos del
formulario. Dentro del FORM buscar la etiqueta <INPUT> que recibe el nombre.
Luego se puede usar hb_Curl, una librería muy completa y que funciona
muy bien, wrapper de
http://curl.haxx.se/libcurl/ que te permite además
recibir el zip con las fotos. Si el método es POST sería algo más o
menos así:
cUrl := <La url del form>
cVar := <el nombre del INPUT>
cValue := <el valor que quieres cargar en el form>
// ActualizaScr() sería una función que se ejecuta durante la
descarga.
// curl es el handle de la conexión de CURL
#include "hbcurl.ch"
curl_global_init()
IF ! Empty( curl := curl_easy_init() )
tmp := cVar + '=' + cValue
curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD )
curl_easy_setopt( curl, HB_CURLOPT_URL, cUrl)
curl_easy_setopt( curl, HB_CURLOPT_POSTFIELDS, tmp)
// Si usa https, estas lineas ayudan
curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, .F. )
curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP )
curl_easy_setopt( curl, HB_CURLOPT_PROGRESSBLOCK, ;
{| nPos, nLen | ActualizaScr() } )
curl_easy_setopt( curl, HB_CURLOPT_NOPROGRESS, .F. )
curl_easy_setopt( curl, HB_CURLOPT_VERBOSE, .F. )
if curl_easy_perform( curl ) == 0 // Todo OK
tmp := curl_easy_dl_buff_get( curl )
Memowrit( 'fotos.zip', tmp )
Else
MsgInfo( 'Problemas en la comunicación' )
EndIf
curl_easy_reset( curl )
Else
MsgInfo( 'Problemas para inicializar conexiones' )
EndIf
curl_global_cleanup()
Básicamente esto sería todo. No estoy seguro si en el contrib de
xHarbour está disponible CURL, en el de Harbour sí. Solo haría falta
recompilar.
Un saludo