在使用浏览器控件的程序中判断HTTP错误
来源:互联网 发布:java中的命名规则 编辑:程序博客网 时间:2024/06/05 07:33
在自动化浏览器控件提交表单之后,浏览器控件可能会在浏览超时时重定向到一个错误页面。有时需要用代码控制页面返回之后重新提交表单。
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标志来防止服务器的重定向。
这种方法会造成每个页面被下载两次,一次由浏览器控件发起,一次由网址测试代码发起。两次下载有可能有不同的结果,所以这种方法也未必准确。
浏览器控件不支持IBindStatusCallback接口,也没有从浏览器控件获得IWinInetHttpInfo接口的已知方法。
InternetGetLastResponseInfo在找不到网页(404)时不会返回错误。
IE6.0版本的浏览器控件可以触发DWebBrowserEvents2::NavigateError事件来通知浏览错误及提供错误代码。但是,这个事件只在使用代码进行浏览之后触发一次。在用户点击链接触发浏览错误时不会触发这个事件。
参考
http://www.microsoft.com/mind/0796/protocol/protocol.asp
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/ifaces/dwebbrowserevents2/navigateerror.asp
- 在使用浏览器控件的程序中判断HTTP错误
- 在使用浏览器控件的程序中判断HTTP错误
- 在使用浏览器控件的程序中判断HTTP错误
- 在MFC中使用Chrome浏览器控件
- 在JS中判断浏览器的类型
- 在JS中判断浏览器的类型
- 在JS中判断浏览器的类型
- 如何在浏览器控件中使用牛牛截图控件
- 在awt/swing程序中添加Browser控件的使用
- 使用浏览器在JavaScript程序中的错误与调试
- 在C#程序中使用ActiveX控件
- 使用JS在浏览器中判断当前网络连接状态的几种方法
- 工具类 得到屏幕的宽度,高度,打开浏览器,判断控件是否在屏幕中,查看图片是否已经缓存
- 在IE浏览器中使用Windows窗体控件(一)
- 在IE浏览器中使用Windows窗体控件(二)
- 在IE浏览器中使用Windows窗体控件(三)
- 在IE浏览器中使用Windows窗体控件(一)
- 在IE浏览器中使用Windows窗体控件(二)
- 存取在线存储
- spi子系统分析---续
- MFC,欢乐与痛苦
- Visual Studio 2005中MFC的变化
- VC的自动化向导的BUG
- 在使用浏览器控件的程序中判断HTTP错误
- 示例:在MFC程序中集成.Net中的控件
- 《转换指南: 将程序从托管扩展C++迁移到C++/CLI》译后记
- 注释皈元
- Win32 to .NET API Map
- Win32 & .Net Q&A
- Good Bye SOAP ToolKit , Hello Webservice
- IStream接口和CString之间的转换
- 何时一个类的指针可以强制转化为另外一个类的指针,即使它们之间没有派生关系?