0

我需要从站点“hh.ua”下载页面源,但首先我必须登录。我尝试了许多不同的方法,但记录失败。该页面的操作源是“ http://hh.ua/logon.do ”,我试图监控发送的日志查询,它是 - http://hh.ua/logon.do?username=111&password=333&action =%D0%92%D0%BE%D0%B9%D1%82%D0%B8。请帮忙!)

这是代码

        string formUrl = "http://hh.ua/logon.do"; 
        string formParams = string.Format("username={0}&password={1}&action=%D0%92%D0%BE%D0%B9%D1%82%D0%B8", "anli_@mail.ru", "80903798516");
        string cookieHeader;
        WebRequest req = WebRequest.Create(formUrl);
        req.ContentType = "application/x-www-form-urlencoded";
        req.Method = "POST";
        byte[] bytes = Encoding.ASCII.GetBytes(formParams);
        req.ContentLength = bytes.Length;
        using (Stream os = req.GetRequestStream())
        {
            os.Write(bytes, 0, bytes.Length);
        }
        WebResponse resp = req.GetResponse();

        cookieHeader = resp.Headers["Set-cookie"];
        return cookieHeader;

        string pageSource;
        string getUrl = "http://hh.ua/resume/ae23733eff00c000df0039ed1f476831706856";
        WebRequest getRequest = WebRequest.Create(getUrl);
        getRequest.Headers.Add("Cookie", cookieHeader);
        WebResponse getResponse = getRequest.GetResponse();
        using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
        {
            pageSource = sr.ReadToEnd();
        }

我知道登录失败,因为下载的页面是登录页面。

4

2 回答 2

0

您可以使用我在这里描述的这种技术来自动登录:
http ://codecube.net/2010/02/reusing-phpbbs-authentication-system/

于 2011-01-20T19:43:54.553 回答
0

对于那些来回涉及大量网络的项目,我发现WatiN非常有用。虽然 WatiN 可能起源于测试驱动的世界,但它非常擅长任何需要引导 Web 浏览器的东西(现在支持 Chrome 和 Firefox :)。

于 2011-01-20T19:41:32.120 回答