想通过后台提交搜索条件,然后读取搜索后的数据;但现在网站一般都用ajax做,所以用HttpwebRequest方式获取,都是返回html页都是“请稍后,真正查询”字样,而不是真正查询出来的有效数据? 这个问题该如何解决?
  try
        {
            HttpWebRequest hwReq = (HttpWebRequest)HttpWebRequest.Create(url);          // hwReq.ContentLength = param.Length;
                        hwReq.Timeout = 46000;
            hwReq.Method = "Get";
            hwReq.KeepAlive = true;         
         //  System.Threading.Thread.Sleep(4000); 这个试了 没用!
            HttpWebResponse hwRes = (HttpWebResponse)hwReq.GetResponse();            StreamReader streamReader = new StreamReader(hwRes.GetResponseStream(), System.Text.Encoding.UTF8);            StringBuilder strBuilder = new StringBuilder();            while (-1 != streamReader.Peek())
            {
                strBuilder.AppendLine(streamReader.ReadLine());
            }            this.Label1.Text = strBuilder.ToString();            streamReader.Close();
        }        catch (Exception err)
        {
            this.Label2.Text = "错误:" + err.Message; 
        }

解决方案 »

  1.   

    找到真正的数据后Response.Write出来不就行了么
      

  2.   


    关键是Response回来就是没有真实数据的,我程序返回的时候,目标网站还在查数据呢
      

  3.   

    你可以看一下搜索网站的脚本,他可能调用另一个页面处理实际的搜索任务,一般是两种
    一种是post到另一个页,或者后台的handle程序之类的(类似php,servlet,aspx等),你可以直接post到这个页得到返回的数据
    另一种是调用webservice,可能会麻烦一点,你也可以试着用post方式调用webservice,看他返回的数据
      

  4.   

    你是怎么Response回来的???
      

  5.   

    网站是直接用get方法传递参数的,我把网址加参数直接在IE地址栏中输入,先显示静态部分页面,同时“请稍后,真在查询数据”,然后一会数据就出来了。我用上面的程序(见上),静态的部分页面,可以获取,然后动态部分只能获取“请稍后,真在查询数据”,并不能获取之后的有效数据----------------------------------------
    你是怎么Response回来的???
    -----上面有大陆货的代码,麻烦看看
      

  6.   

    没招啊.
    动态数据不要用ajax获取的...
      

  7.   

    webbrower吧。
      

  8.   

    httpwebrequest通过post传值获取数据
    string url = "网址";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    string s = "要提交的数据";
    byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes (“”);
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    req.ContentLength = requestBytes.Length;
    Stream requestStream = req.GetRequestStream();
    requestStream.Write(requestBytes,0,requestBytes.Length);
    requestStream.Close();
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
    string backstr = sr.ReadToEnd(); Response.Write(line); sr.Close(); res.Close(); 
      

  9.   

     
    wuyq11
    获取静态的get、post的代码我都有,但是不幸,要是目标网站用ajax动态加载的数据,我还有什么办法可以获取?
      

  10.   


    用ajax写的也有一个页或者web service做实际的处理,你要找出那个页或者service,推荐用firebug,可以很容易的找出浏览器发出的请求