HttpWebClient从网页获取隐藏的字段数据

时间:2013-11-05 18:18:33

标签: c# asp.net-mvc dotnet-httpclient

我正在尝试获取隐藏字段的内容

<input name="__RequestVerificationToken" type="hidden" value="kPx9IGKrVVAqqFeucPtMA23XjbP7L3gKUlGVnSRXd173frtNjADPLJu6wLoBPlxGiIcgNw2" /> 

我需要获取此值,以便我可以使用登录凭据进行回发。如何使用HTTPClient获取此值?

1 个答案:

答案 0 :(得分:3)

使用htmlagilitypack(无法转换为HttpClient而不是WebClient,但这不是重要的一点):

using(var wc=new WebClient())
{
    var dom = wc.DownloadString(someUrl);
    var htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml(dom);
    var reqVerTokenElement = htmlDoc
                        .DocumentNode
                        .Descendants("input")
                        .Where(n => n.Attributes["name"]!=null 
                                    && n.Attributes["name"].Value
                                        =="__RequestVerificationToken")
                        .FirstOrDefault();
    if(reqVerTokenElement!=null)
    {
        var tokenValue = reqVerTokenElement.Attributes["value"].Value;
    }
}