我想在客户端截下ie或者webbrowser空件向服务器发送的请求,包括get命令和post命令,已经post的数据。我想写一个程序,模拟某些网页自动发送http请求,但是不知道参数,这些网页太复杂,夹杂着脚本,所以不容易看出post的数据的格式。我想是不是有工具能够截住http请求的参数。

解决方案 »

  1.   

    sniffer pro
    可以截住任何包
    非常强大
    不过使用起来比较麻烦
    网上有使用手册,你也可以参考工具自带的帮助手册不过一般的HTTP包你只要分析一下那个页面的FORM就很清楚了
    不需要用SNIFFER
      

  2.   

    仔细学习CHtmlView,昨天有个csdn网友(别欺负我),教了我一招。
    重载OnNewWindow2,果然能把请求发到别的地方去。哈哈。关键代码如下:
    CWeatherForecastView* CMainFrame::GetRightView()
    {
    CWeatherForecastView *p;
    p = (CWeatherForecastView*)m_wndSplitter.GetPane(0, 1);
    return p;
    }void CMyHtmlView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel) 
    {
    CWeatherForecastView *p;
    CMainFrame *pMain; pMain = (CMainFrame*)AfxGetMainWnd();
    p = pMain->GetRightView(); // 得到右边的CHtmlView句柄

    *ppDisp = p->GetApplication();
    *Cancel = FALSE;
    }
      

  3.   

    就这点问题,简单,拦截wsock32的send函数,不就看到发送什么了,至于怎么拦截,方法不要太多;
    1、stab wsock32.dll
    2、hook api
    3、raw socket
    4、winpcap
    5、spi
    6、ndis
    依赖于sniffer 之类的东西,监视包还差不多,要自己发包,还是按我说的作。
      

  4.   

    use BHO can monitor IE
      

  5.   

    有没有现成的工具,不需要编程的,分析form太复杂了,到处都是脚本,而且容易出错。我知道重载CHtmlView::OnBeforNavigate可以截住请求,还有没有更简单的办法?