2014-10-09 42 views
0

我試圖爲這個網頁開發一個應用程序,所以用戶將能夠登錄並看到他們的細節(scedule等)。在c#WP8網站登錄應用程序

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

但是我非常新,在從網絡上獲得數據的工作,而這個頁面看起來非常難以得到的任何數據(不要對我做出判斷:d)。

該頁面使用gzip的 頁面與生成的ID的一個需要我的用戶名和密碼 提出了一些隱藏的字段的頁面抱怨缺少的每個會話cookie

這裏是我的代碼看起來像現在:

首先我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

我的解決方案是使用靜態隱藏webbrowser而不是webclient。