在使用浏览器控件的程序中判断HTTP错误
来源:互联网 发布:淘宝店比小米商城便宜 编辑:程序博客网 时间:2024/05/29 11:41
在自动化浏览器控件提交表单之后,浏览器控件可能会在浏览超时时重定向到一个错误页面。有时需要用代码控制页面返回之后重新提交表单。
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错误
- 在使用浏览器控件的程序中判断HTTP错误
- 在MFC中使用Chrome浏览器控件
- 在JS中判断浏览器的类型
- 在JS中判断浏览器的类型
- 在JS中判断浏览器的类型
- 如何在浏览器控件中使用牛牛截图控件
- 在awt/swing程序中添加Browser控件的使用
- 使用浏览器在JavaScript程序中的错误与调试
- 在C#程序中使用ActiveX控件
- 使用JS在浏览器中判断当前网络连接状态的几种方法
- 工具类 得到屏幕的宽度,高度,打开浏览器,判断控件是否在屏幕中,查看图片是否已经缓存
- 在IE浏览器中使用Windows窗体控件(一)
- 在IE浏览器中使用Windows窗体控件(二)
- 在IE浏览器中使用Windows窗体控件(三)
- 在IE浏览器中使用Windows窗体控件(一)
- 在IE浏览器中使用Windows窗体控件(二)
- C#开发短信收发软件的原理
- 说Hand-over-hand lock: 通读Concurrent Programming in Java: Design Principles and Patterns (1)
- WS-BPEL与WS-CDL比较
- sql语句使用内嵌视图与临时表示例
- 关于hibernate的看法
- 在使用浏览器控件的程序中判断HTTP错误
- Windows 线程漫谈——界面线程和工作者线程
- 用C#实现电脑+数据线+手机模式发短信
- Asp.net Mvc Framework 系列
- 利用Visual C#实现任务栏通知窗口
- 1人30天44587行代码,分享舍得网开发过程
- IE中实现图片的拖拽
- MD5加密简介以及C#下的操作实现
- 盖茨今日国会陈词:应让更多科技人才赴美工作