using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.Web;namespace WindowsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            Encoding encoding = Encoding.GetEncoding("GB2312");
            string selectInfo = System.Web.HttpUtility.UrlEncode(textBox1.Text, encoding);
;
            string url="http://www.baidu.com/s?";
            string urlSelet = url + "wd=" + selectInfo;
            string strResult = "";
            Console.WriteLine(urlSelet);
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlSelet);
    
                //声明一个HttpWebRequest请求 
                request.Timeout = 10000;
                //设置连接超时时间 
                request.Headers.Set("Pragma", "no-cache");
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(streamReceive, encoding);
                strResult = streamReader.ReadToEnd();
                MessageBox.Show("OK");
            }
            catch (Exception exp)
            {
                MessageBox.Show("出错:" + exp.Message);            }
        }
    }
}以上是我的一段代码,就是有一个输入框,输入要检索的关键字,组合为一个URL到百度去检索,但是不知道为什么老是报操作超时这样的错误。哪位好人帮帮我吧。

解决方案 »

  1.   

    把生成的URL,放到地址栏中中,是可以百度出结果的,但是运行时,还是报错,我被折磨了很久了,拜托了,是不是少写什么了?
      

  2.   

    debug一下看看在哪一步停了。感觉代码没啥问题。
      

  3.   

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    到这里就停了,这里有问题吗?不知道怎样改啊。
      

  4.   

     request.AllowAutoRedirect = false;
     request.Method = "GET";你是说加上这两句吗?不好用啊
      

  5.   

    操作超时
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    到这里就报
      

  6.   

    设置Method="Get"
    另外还需要设置 UserAgent
      

  7.   


     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://www.baidu.com/s?wd=%C8%FD%BB%AF%CD%F8");
                webRequest.Method = "GET";
                webRequest.UserAgent = "Opera/9.25 (Windows NT 6.0; U; en)";
                HttpWebResponse webResponse =(HttpWebResponse)webRequest.GetResponse();
                using (System.IO.Stream stream = webResponse.GetResponseStream())
                {
                    using (System.IO.StreamReader reader = new StreamReader(stream,System.Text.Encoding.GetEncoding(936)))
                    {
                        Response.Write(reader.ReadToEnd());
                    }
                }
      

  8.   

    十分感谢,truelove12和大家,现在已经可以了
    truelove12代码很正确,但是你能给我解释一下吗?不是很明白,谢谢!!!!
      

  9.   

    我也被这个问题困扰了很久, 看看我的解决方法吧.HttpWebRequest _webReq;try
    {
    _webReq = WebRequest.Create(url) as HttpWebRequest;
    _webReq.Timeout = TimeOut;
    _webReq.Method = "Get";
    _webReq.KeepAlive = false;
    _webReq.UserAgent = "MSIE 7.0; Windows NT 5.1"; return _webReq.GetResponse().GetResponseStream();
    }
    catch (Exception ex)
    {
    return null;
    }