Ho provato anche a convertire la mia classe MyPC da HttpWebRequest a WebClient in questo modo:
Però il risultato non cambia.codice:using System; using System.IO; using System.Net; using System.Text; using MyApp.Utility; namespace MyApp.Proxy { public class MyPC : Proxy { private WebClient m_client; public MyPC() : base() { m_client = new WebClient(); } public override StreamReader RequestData(string url) { return RequestData(url, RequestMethod.Get); } public override StreamReader RequestData(string url, RequestMethod method) { return RequestData(url, method, null); } public override StreamReader RequestData(string url, RequestMethod method, HttpPostData postData) { try { m_client.Headers.Clear(); if (m_userAgent != String.Empty) m_client.Headers.Add("User-Agent", m_userAgent); if (m_referer != String.Empty) m_client.Headers.Add("Referer", m_referer); m_referer = url; if (method == RequestMethod.Post && postData != null) { postData.ToString(); m_client.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); Stream memory = new MemoryStream(m_client.UploadData(new Uri(url), Encoding.UTF8.GetBytes(postData.Compiled))); StreamReader reader = new StreamReader(memory, Encoding.UTF8); return reader; } else { m_client.Headers.Add("Content-Type", "text/html"); Stream memory = new MemoryStream(m_client.DownloadData(new Uri(url))); StreamReader reader = new StreamReader(memory, Encoding.UTF8); return reader; } } catch (Exception e) { Log.Error(e.ToString()); return null; } } } }
Al richiamo della prima pagina di login con passaggio dei post data. Avviene il login.
E al secondo richiamo di un altra pagina, mi restituisce che il login non è avvenuto.
Ho letto su Google che WebClient memorizza in automatico i cookie, ma sembra che ciò non avviene.
Qualche consiglio?

Rispondi quotando