首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中获取授权页面的HTML DOM内容

如何在C#中获取授权页面的HTML DOM内容
EN

Stack Overflow用户
提问于 2018-02-01 18:21:39
回答 1查看 238关注 0票数 0

我有Windows窗体应用程序,我正在加载一个网站。我使用有效凭据登录到Windows窗体中的站点。

然后,我设法获得了有效的会话id &这就是URL在有效凭据之后的样子

代码语言:javascript
复制
var url = "http://www.somewebsite123.com/portal/sessionId=123";

我使用Microsoft.mshtml & AxInterop.ShDocVw来获取授权页面的内容。

代码语言:javascript
复制
    WebClient client = new WebClient();
    using (Stream data = client.OpenRead(new Uri(url)))
    {
      StreamReader reader = new StreamReader(data);
      string htmlContent = reader.ReadToEnd();

但是在下面的一行中,它抛出了错误

代码语言:javascript
复制
strHTML = ((IHTMLElement)htmlContent.document).innerHTML.ToString();

错误

代码语言:javascript
复制
    Internal error (WWC-00006)
    An unexpected error occurred: ORA-01403: no data found (WWV-16016)

我如何摆脱这个错误?

EN

回答 1

Stack Overflow用户

发布于 2018-02-01 18:30:23

当WebClient达到4XX或5XX时,可以在WebException.Response中找到实际的DOM内容:

代码语言:javascript
复制
try {
     // Webclient that raise 4XX
}
catch (WebException webex) 
{
   using (var streamReader = new new StreamReader(webex.Response.GetResponseStream())) { 
    var domContent = streamReader.ReadToEnd();
   } 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48560352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档