Scarica una pagina o file da Internet.
Versione avanzata da usare nel caso di accessi che richiedono più informazioni come login e password.
Sintassi
EH_WEB * webHttpReqEx(EH_WEB * psWebReq,BOOL bASync)
Parametri
- psWebReq
Puntatore ad una struttura EH_WEB
- bASync
FALSE la funzione ritorna quando la pagina è pronta.
TRUE la funzione ritorna subito e viene notificato a funcNotify quando la pagina è stata scaricata.
Valori di ritorno
Commenti
EH_WEB sWeb;
_(sWeb);
strcpy(sWeb.szReq,"GET");
sWeb.lpUri=pszUrl;
sWeb.funcNotify=funcNotify;
sWeb.iTimeoutSec=iTimeoutSec;
return webHttpReqEx(&sWeb,bAsync);
Esempio Post Mime
EH_WEB * psWeb;
EH_WEB sWeb;
EH_WEB_MP sMP;
_(sWeb);
strcpy(sWeb.szReq,"POST");
sWeb.pszUri=psCloud->szUrl;
_(sMP);
strcpy(sMP.szName,"r");
sMP.lpData="put";
sMP.ulSize=strlen(sMP.lpData);
webAddMultiPart(&sWeb,&sMP);
_(sMP);
strcpy(sMP.szName,"kid");
sMP.lpData=psCloud->pszKeyId_flat;
sMP.ulSize=strlen(sMP.lpData);
webAddMultiPart(&sWeb,&sMP);
_(sMP); // File data compresso
sMP.iType=1; // Non allocare data
strcpy(sMP.szName,"fd");
sMP.lpFileName=pszFileName;
sMP.lpContentTransferEncoding="binary";
sMP.lpData=pbFileCompress; // Lo libererà webFree()
sMP.ulSize=ulSize;
webAddMultiPart(&sWeb,&sMP);
_(sMP);
strcpy(sMP.szName,"fn");
sMP.lpData=pszFileName;
sMP.ulSize=strlen(sMP.lpData);
webAddMultiPart(&sWeb,&sMP);
_(sMP); // Dimensioni
strcpy(sMP.szName,"s"); sprintf(szServ,"%d",tFileSize);
sMP.lpData=szServ;
sMP.ulSize=strlen(sMP.lpData);
webAddMultiPart(&sWeb,&sMP);
ZeroFill(sMP); // Dimensioni
strcpy(sMP.szName,"tm"); sprintf(szServ,"%I64d",tmWrite);
sMP.lpData=szServ;
sMP.ulSize=strlen(sMP.lpData);
webAddMultiPart(&sWeb,&sMP);
sWeb.iKeepAlive=true;
sWeb.iTimeoutSec=60;
psWeb=webHttpReqEx(&sWeb,false);
if (!psWeb->sError.enCode) {
if (!strBegin(psWeb->pData,"OK"))
{
iRet=0;
if (lstInfo) lstPushf(lstInfo,"upload: %s",szFileSource);
}
else {
iRet=20;
if (lstInfo) lstPushf(lstInfo,"upload: %s : cloud error ret: %s",szFileSource,psWeb->pData);
}
} else
{
iRet=10;
if (lstInfo) lstPushf(lstInfo,"upload: %s : %s",szFileSource,psWeb->sError.szDesc);
}
webHttpReqFree(psWeb);