繁体   English   中英

在C#WP8应用中的网站登录

[英]Website login in c# WP8 app

我正在尝试为该网页开发一个应用程序,以便用户可以登录并查看其详细信息(程序等)。

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

但是,我在从Web上获取数据方面非常陌生,并且此页面似乎很难从中获取任何数据(不要判断我: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;
}

我不知道这是否我几乎正确,因为我已经尝试了互联网上无处不在的几种解决方案。

请帮助我-我被卡住了!

我的解决方案是使用静态隐藏的Web浏览器而不是Webclient。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM