通过httpclient登录安全网站,使用C#抓取数据

时间:2017-04-06 07:44:15

标签: c# asp.net-mvc web-scraping

我必须在登录后从安全(https)网站上获取废料数据,并将此数据显示给我的MVC5应用程序。 登录后很容易从不安全的网站上废弃数据,因为我使用了以下方法:

 public async Task<ActionResult> Index()
    {
        HttpClient client = new HttpClient();

        var values = new Dictionary<string, string>
        {
           { "User.UserName", "abc" },
           { "User.Password", "abc" }
        };

        var content = new FormUrlEncodedContent(values);
        client.BaseAddress = new Uri("http://abc1.com/Account/Login");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
        var response= await client.PostAsync("http://abc1.com/Account/Login", content); 
        HttpResponseMessage response1 = await client.GetAsync("http://abc1.com/user/Index"); // This page data was reqired
        var responseString = await response1.Content.ReadAsStringAsync(); 
        ViewBag.LogedIn = responseString;
        return View();
    }

在此之后我将视图包中的下一页数据作为我的要求。但是在Https网站的情况下,它不起作用,也没有错误发生。

请建议我在此方法中应该做哪些更改,以便登录安全网站。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我确定你的代码中没有任何内容 -

您可以使用Postman发送请求以帮助调试错误。对这种事情非常有帮助

https://www.getpostman.com/

您尝试连接的服务器可能正在使用与您期望的不同的协议?

有关在代码中强制更改协议的详细信息,请查看此答案: - )

Make Https call using HttpClient