想通过后台提交搜索条件,然后读取搜索后的数据;但现在网站一般都用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;
}
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;
}
解决方案 »
- 我从别的地方复制了一个aspx页面,然后我自己给他生成代码文件,出现奇怪问题,说button不存在,并不包含“findControl”的定义等。
- 一个界面有多个BUTTON和TEXTBOX,我想根据textbox的焦点,在回车时候判断对应的BUTTON的ONCLICK事件,请问怎么解决
- .net调用BV6作的OCX控件,编译时提示受保护级别限制
- 网站发布之后网页只在左上角显示一个 0 !!!
- 如何根据从数据库取值的情况来决定是否加<A>标记?
- 如何求showModalDialog的位置坐标
- 在asp.net中怎样解决颜色的判断表达式??
- 奇怪的问题,我用C#写的LABEL显示不出来
- onclick 和 onserverclick有什么区别,请举例说一下。在用代码创建的button中,怎样设置onclick事件。
- asp.net 怎么弄一个进度条(后台怎么操作前台的js)
- ajaxtoolkit combobox的一个bug
- SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 String 对象。
关键是Response回来就是没有真实数据的,我程序返回的时候,目标网站还在查数据呢
一种是post到另一个页,或者后台的handle程序之类的(类似php,servlet,aspx等),你可以直接post到这个页得到返回的数据
另一种是调用webservice,可能会麻烦一点,你也可以试着用post方式调用webservice,看他返回的数据
你是怎么Response回来的???
-----上面有大陆货的代码,麻烦看看
动态数据不要用ajax获取的...
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();
wuyq11
获取静态的get、post的代码我都有,但是不幸,要是目标网站用ajax动态加载的数据,我还有什么办法可以获取?
用ajax写的也有一个页或者web service做实际的处理,你要找出那个页或者service,推荐用firebug,可以很容易的找出浏览器发出的请求