Download file da sito tramite https e parametri

lunedì 09 luglio 2012 - 17.32
Tag Elenco Tags  C#  |  VB.NET  |  .NET 4.0  |  Visual Studio 2010

sansi Profilo | Newbie

Buongiorno a tutti, volevo chiedervi una mano per risolvere un problema.

Periodicamente ho necessità di accedere a un sito, autenticarmi, scegliere un report e quindi tramite il pulsante download fare lo scarico del file.
Vorrei automatizzare la cosa. Ho visto che l'indirizzo che viene mandato al server per ottenere il report è qualcosa del tipo:

https://<indirizzo>?par1=***&par2=***&par3=***

dove nei parametri c'è il tipo di report e altre informazioni.

E' possible tramite vb o c# inoltrare la richiesta al server, autenticarmi e inviare il comando per scaricare il file?

Grazie in anticipo,
Massimo

totti240282 Profilo | Guru

Con le classi webrequest/responde dovresti riuscirci.
C'è solo un capitano !!!!!!

sansi Profilo | Newbie

>Con le classi webrequest/responde dovresti riuscirci.

Innanzitutto grazie per la risposta.

Infatti avevo provato con queste

url = "https://....?param1=***&param2=***...." Dim wr As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest) wr.Credentials = New NetworkCredential(mioUtente, miaPassword) Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse) Dim str As Stream = ws.GetResponseStream() Dim inBuf(100000) As Byte Dim bytesToRead As Integer = CInt(inBuf.Length) Dim bytesRead As Integer = 0 While bytesToRead > 0 Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead) If n = 0 Then Exit While End If bytesRead += n bytesToRead -= n End While Dim fstr As New FileStream(nomefile & ".txt", FileMode.OpenOrCreate, FileAccess.Write) fstr.Write(inBuf, 0, bytesRead) str.Close() fstr.Close()

ma probabilmente sbaglio qualcosa. Nel caso non sia necessaria l'autenticazione funziona (escludendo naturalmente la parte credentials). Se devo autenticarmi no.

totti240282 Profilo | Guru

NetworkCredential credo sia l'autenticazione per quei box che si aprono che ti chiedono login e password.

Se le credenzial isi basano sui cookie devi usare tipo questo codice :

http://stackoverflow.com/questions/4158448/c-sharp-webrequest-using-cookies
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/86c6b276-48b9-461d-bc1b-c500834518fc/
C'è solo un capitano !!!!!!

sansi Profilo | Newbie

>NetworkCredential credo sia l'autenticazione per quei box che
>si aprono che ti chiedono login e password.
>
>Se le credenzial isi basano sui cookie devi usare tipo questo
>codice :
>
>http://stackoverflow.com/questions/4158448/c-sharp-webrequest-using-cookies
>http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/86c6b276-48b9-461d-bc1b-c500834518fc/
>C'è solo un capitano !!!!!!

Grazie, ho provato a dargli un'occhiata e a fare alcune prove. E' abbastanza chiaro come ottenere il cookie e utilizzarlo però non ho ancora capito come passare il nome utente e la password.

Grazie,
Massimo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5