在使用浏览器控件的程序中判断HTTP错误
2008-03-13 10:12
246 查看
在自动化浏览器控件提交表单之后,浏览器控件可能会在浏览超时时重定向到一个错误页面。有时需要用代码控制页面返回之后重新提交表单。
IE6.0之前的版本浏览器控件没有获得HTTP状态的接口。一个很依赖于网站设置的方法是,捕获 TitleChange事件,在页面标题包含"找不到页面"或者"Page Not Found"之类的字符串时,认为浏览失败。另一个方法是处理BeforeNavigate2事件,用winhttp api单独和服务器连接,使用HttpQueryInfo来查询,相应参数是HTTP_QUERY_STATUS_CODE。在这之前,你可能要在打开 URL时用INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS标志来防止服务器的重定向。
这种方法会造成每个页面被下载两次,一次由浏览器控件发起,一次由网址测试代码发起。两次下载有可能有不同的结果,所以这种方法也未必准确。< /p>
浏览器控件不支持IBindStatusCallback接口,也没有从浏览器控件获得IWinInetHttpInfo 接口的已知方法。
InternetGetLastResponseInfo在找不到网页(404)时不会返回错误。
IE6.0版本的浏览器控件可以触发DWebBrowserEvents2::NavigateError事件来通知浏览错误及提供错误代码。但是,这个事件只在使用代码进行浏览之后触发一次。在用户点击链接触发浏览错误时不会触发这个事件。< /p>
参考
http://www.microsoft.com/mind/0796/protocol/protocol.asp
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/ifaces/dwebbrowserevents2/navigateerror.asp
IE6.0之前的版本浏览器控件没有获得HTTP状态的接口。一个很依赖于网站设置的方法是,捕获 TitleChange事件,在页面标题包含"找不到页面"或者"Page Not Found"之类的字符串时,认为浏览失败。另一个方法是处理BeforeNavigate2事件,用winhttp api单独和服务器连接,使用HttpQueryInfo来查询,相应参数是HTTP_QUERY_STATUS_CODE。在这之前,你可能要在打开 URL时用INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS标志来防止服务器的重定向。
这种方法会造成每个页面被下载两次,一次由浏览器控件发起,一次由网址测试代码发起。两次下载有可能有不同的结果,所以这种方法也未必准确。< /p>
浏览器控件不支持IBindStatusCallback接口,也没有从浏览器控件获得IWinInetHttpInfo 接口的已知方法。
InternetGetLastResponseInfo在找不到网页(404)时不会返回错误。
IE6.0版本的浏览器控件可以触发DWebBrowserEvents2::NavigateError事件来通知浏览错误及提供错误代码。但是,这个事件只在使用代码进行浏览之后触发一次。在用户点击链接触发浏览错误时不会触发这个事件。< /p>
参考
http://www.microsoft.com/mind/0796/protocol/protocol.asp
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/ifaces/dwebbrowserevents2/navigateerror.asp
相关文章推荐
- 在使用浏览器控件的程序中判断HTTP错误
- 在使用浏览器控件的程序中判断HTTP错误
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
- 登录浏览器版本判断和cookie的使用
- 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理
- 牛腩购物4 aspnetpager控件的使用 以及 linkbutton 如何传值,判断传入的id值是否为数字
- 使用php判断浏览器的类型和语言的函数代码
- 将 Java 小程序迁移到 Microsoft J# 浏览器控件 (转)
- 使用jQuery判断浏览器滚动条位置的方法
- 在win32/MFC 程序中使用QT控件。。。。。。。
- 微信小程序-UI控件的使用(4)
- 使用JQuery 区分判断 不同内核的浏览器
- 巧妙使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的好方法
- 浏览器判断是否安装了ios/android客户端程序
- 使用 Visual Studio 2005中的ASP.NET 移动控件创建电子书浏览器应用程序
- MFC中使用串口控件后程序无法打开的问题解决
- 前天公司面试题-使用B/S模式写一个程序,用来抓取百度或SOSO中对关键字的说明,尽量不使用服务器控件。
- Visual Studio 中使用Word、Excel等COM控件时如何配置服务器让程序正常运行?
- 使用js判断5大浏览器版本、引擎和所在系统方法