2014-10-09 6 views
0

Im пытается разработать приложение для этой веб-страницы, чтобы пользователи могли войти в систему и посмотреть их детали (scedule и т. Д.).Вход в систему в C# WP8 app

http://www.lectio.dk/lectio/317/default.aspx

Однако я совсем новичок в работе с получением данных из Интернета, и эта страница кажется довольно трудно получить какие-либо данные (Dont судить меня: D).

Страница использует GZIP страница имеет несколько скрытых полей с сгенерированных идентификаторов, который нуждается мне представленный с именем пользователя и паролем страница сообщает об отсутствии каждой сессии печенье

Вот что мой код выглядит как прямо сейчас:

Первый мой Mywebclient класс:

public class MyWebClient : SharpGIS.GZipWebClient 
{ 
    Uri _responseUri; 
    public CookieContainer CookieContainer { get; private set; } 

    public MyWebClient() 
    { 
     this.CookieContainer = new CookieContainer(); 
    } 

    public MyWebClient(CookieContainer cookieContainer) 
    { 
     this.CookieContainer = cookieContainer; 
    } 
    public Uri ResponseUri 
    { 
     get { return _responseUri; } 
    } 

    protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result) 
    { 
     WebResponse response = base.GetWebResponse(request, result); 
     _responseUri = response.ResponseUri; 
     return response; 
    } 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     var request = base.GetWebRequest(address) as HttpWebRequest; 
     if (request == null) return base.GetWebRequest(address); 
     request.CookieContainer = CookieContainer; 
     return request; 
    } 
}` 

Во-вторых, код, который вызывает загрузку

string postdata = "m$Content$password2=" + HttpUtility.UrlEncode("PASSWORD") + "m$Content$username2=" + HttpUtility.UrlEncode("USERNAME"); 
navigatePostRequestBrowser(new Uri("https://www.lectio.dk/lectio/317/login.aspx"), postdata); 

И, наконец, загрузка

protected void navigatePostRequestBrowser(Uri url, string postdata) 
{ 
    MyWebClient webClient = new MyWebClient(); 
    webClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; 
    webClient.Encoding = Encoding.UTF8; 
    webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(proxy_UploadStringCompleted); 
    webClient.UploadStringAsync(url , "POST", postdata); 
} 

Мои UploadStringCompleted выглядит следующим образом:

private void proxy_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) 
{ 
    var response = e.Result; 
} 

Я понятия не имею, если это я даже почти правильно, так как я попробовал несколько решений везде в интернете.

Пожалуйста, помогите мне - я застрял!

ответ

0

Моим решением было использовать статический скрытый веб-браузер вместо веб-клиента.