HttpWebRequestでHttps Webサイトにログインした後のHtmlagilitypack?

c# html-agility-pack https httpwebrequest

質問

私はpluralsightのようないくつかのhtmlサイトを解析したい、Forexample( https://app.pluralsight.com/id ?)、どうすれば最初にWebブラウザコントロールを使わずにprogrammaticalyのサイトにログインし、別のurlを呼び出すことができますか( Pluralsightなど )応答を取得し、Htmlagilityパックを解析します。

しかし、私はログインコードを書いたが、私は次のステップを知らない。

public class Login
{
    private CookieContainer Cookies = new CookieContainer();



public void SiteLogin(string username, string password)
{
    Uri site = new Uri("https://app.pluralsight.com/id?");

    HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(site);
    wr.Method = "Post";
    wr.ContentType = "application/x-www-form-urlencoded";
    wr.Referer = "https://app.pluralsight.com/id?";
    wr.CookieContainer = Cookies;
    var parameters = new Dictionary<string, string>{
    {"realm", "vzw"},
    {"goto",""},
    {"gotoOnFail",""},
    {"gx_charset", "UTF-8"},
    {"rememberUserNameCheckBoxExists","Y"},
    {"IDToken1", username},
    {"IDToken2", password}
};

    string input = string.Empty;
    using (var requestStream = wr.GetRequestStream())
    using (var writer = new StreamWriter(requestStream, Encoding.UTF8))
        writer.Write(ParamsToFormEncoded(parameters));

    using (var response = (HttpWebResponse)wr.GetResponse())
    {

        if (response.StatusCode == HttpStatusCode.OK)
        {
            //but I do not know the next step.
        }
    }
}

private string ParamsToFormEncoded(Dictionary<string, string> parameters)
{
    return string.Join("&", parameters.Select(kvp => Uri.EscapeDataString(kvp.Key).Replace("%20", "+")
    + "=" + Uri.EscapeDataString(kvp.Value).Replace("20%", "+")
    ).ToArray());
}
}

人気のある回答

HttpWebResponse.GetResponseStreamを使用して応答のストリームを取得してから、HtmlDocumentのLoadメソッドを使用してドキュメントをLoadする必要があります。

var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(response.GetResponseStream());
//further processing...



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ