Grazie icktoofay, Ho provato a utilizzare HttpWebRequest
e HttpWebResponse
.Come scaricare il file utilizzando la classe HttpWebRequest e HttpWebResponse (cookie, credenziali, ecc.)
Quando richiedo l'URL passando le credenziali come UserName e Password.
Riceverò l'ID sessione nella risposta.
Dopo aver ottenuto quell'ID sessione, Come spostarsi ulteriormente.
L'utente autenticato viene tracciato utilizzando le credenziali/i cookie. Sto scaricando l'URL esatto del file e le credenziali. Se vuoi usare i cookie lo farò. Ho bisogno di leggere i dati del file e scrivere/salvarlo in una posizione specificata.
Il codice che sto usando è;
string username = "";
string password = "";
string reqString = "https://xxxx.com?FileNAme=asfhasf.mro" + "?" +
"username=" + username + &password=" + password;
byte[] requestData = Encoding.UTF8.GetBytes(reqString);
string s1;
CookieContainer cc = new CookieContainer();
var request = (HttpWebRequest)WebRequest.Create(loginUri);
request.Proxy = null;
request.CookieContainer = cc;
request.Method = "POST";
HttpWebResponse ws = (HttpWebResponse)request.GetResponse();
Stream str = ws.GetResponseStream();
//ws.Cookies
//var request1 = (HttpWebRequest)WebRequest.Create(loginUri);
byte[] inBuf = new byte[100000];
int bytesToRead = (int) inBuf.Length;
int bytesRead = 0;
while (bytesToRead > 0)
{
int n = str.Read(inBuf, bytesRead,bytesToRead);
if (n==0)
break;
bytesRead += n;
bytesToRead -= n;
}
FileStream fstr = new FileStream("weather.jpg", FileMode.OpenOrCreate,
FileAccess.Write);
fstr.Write(inBuf, 0, bytesRead);
str.Close();
fstr.Close();
Grazie, sì, ho provato il primo metodo e ottenuto il cookie come ID sessione e quando assegno la raccolta cookie alla nuova richiesta Web e provo a richiedere l'URL del file iehttps: //ghasghfh/filename=hasfhgfhg.mro . Quando cerco di ottenere la risposta nel modulo stringa. I valori di stringa che ottengo sono il codice HTML/ViewSource della pagina di accesso. Per favore, rispondimi ... apprezzo molto il tuo aiuto. – Vinay
Significa che hai eseguito correttamente il download della pagina web, ma non hai passato correttamente login e password. Il mio esempio (vedi la riga con il comando string.Format) usa un formato di POST, che ho visto sul server con php dove volevo usare il mio codice. Ho iniziato con il plugin per Firefox che mostra tutte le comunicazioni con il server, e poi ha fatto lo stesso nel mio codice. E funziona. –
Al Kepp, U r giusto, sono in grado di scaricare l'HTML del file con successo. qualsiasi suggerimento in cui il problema/problema persiste. C'è qualche ulteriore cura da prendere. – Vinay