如何捕获从 MFC Web 浏览器 C++ 发出的 GET/POST 请求
Posted
技术标签:
【中文标题】如何捕获从 MFC Web 浏览器 C++ 发出的 GET/POST 请求【英文标题】:How to capture GET/POST request made from MFC web browser c++ 【发布时间】:2018-11-02 01:22:36 【问题描述】:我有 MFC 应用程序,它基本上是网络浏览器。我为此使用了 ChtmlView 类。在执行应用程序时,它将导航到某个默认网页。在那个页面上有一些按钮。单击任何按钮将生成 GET/POST 请求。我想捕获那些 GET/POST 请求及其响应。此外,我必须确保浏览器获得的响应来自有效来源。
以下网页类似于我正在处理的页面support.google.com/books/partner/answer/3254227?hl=en 在此网页上,有“是”和“否”按钮。单击任何这些按钮时,它会发送一些 POST/GET 请求
【问题讨论】:
您可以使用 Igor Tandetnik 的 Passthrough 应用程序:blog.salsitasoft.com/… 这些 POST/GET 请求是如何发送的?形式? XMLHttpRequest?其他方式? 我的 MFC 应用程序无法控制这些请求的发送方式。按钮在网页上,并且有一些与之关联的 java 脚本和 onClick 事件它正在发送这些请求 你应该展示MCVE,而不是一句话描述网站。CHTMLView
没有按钮和 javascript 的问题。看看它是否可以在 Internet Explorer 上运行
@Barmak - 以下网页类似于我正在处理的页面 [support.google.com/books/partner/answer/3254227?hl=en][1] 在此网页上有“是”和“否”按钮。单击任何这些按钮时,它会发送一些 POST/GET 请求
【参考方案1】:
CHTMLViewer
包装了一个IWebBrowser2
。有用的部分被包裹起来。在这种情况下,您需要 CHtmlView::OnBeforeNavigate2
回调。它通过 GET 或 POST 请求调用。
如果您不信任 URL(即不是有效的来源),您可以使用 OnBeforeNavigate2
中的最后一个 cancel
参数来停止 GET 或 POST。
【讨论】:
感谢@MSalters,在我的情况下,当我单击网页上的按钮时,它不会导航到其他页面,而只是发送 GET 或 POST 请求。由于点击事件不会导致导航到其他页面,因此从未调用过“OnBeforeNavigate2”方法以上是关于如何捕获从 MFC Web 浏览器 C++ 发出的 GET/POST 请求的主要内容,如果未能解决你的问题,请参考以下文章