HttpWebRequest req =null;
HttpWebResponse resp =null;req = (HttpWebRequest)WebRequest.Create(url);
Stream ReceiveStream = resp.GetResponseStream();System.Text.Encoding encode = System.Text.Encoding.GetEncodin("GB2312");
StreamReader readStream = new StreamReader( ReceiveStream, encode );read = new Char[152400];
    
int count = readStream.Read( read, 0, 4096 );
while (count > 0)
{
     String str = new String(read, 0, count);
     nHtml = nHtml + str;
     count = readStream.Read(read, 0, 4096);
}最后读出来nHtml是 “Forbidden”  直接将我访问的 url 在IE栏目里输入,网页有显示。应该不存在权限问题,
如何解决? 谢谢大家了。

解决方案 »

  1.   

    req = (HttpWebRequest)WebRequest.Create(url);
    resp = (HttpWebResponse)req.GetResponse();  //中间插入这一行试试
    Stream ReceiveStream = resp.GetResponseStream();
      

  2.   

    楼上的,这句我有。忘记 copy 到这里来了..........不是这个原因
      

  3.   

    老大,代码贴不全总不能让我来猜吧.建议你解决的方法是先找个sniffer
    运行你程序的时候抓一下数据包,看从那个URL返回的字节数是多少.
    如果不是0 (说明返回数据了),那就检查一下你的read stream到str的代码
    如果返回的是0 还是检查你的request好了
      

  4.   

    如果1楼的方法还不行,就增加一句
    req.Credentials = CredentialCache.DefaultCredentials;
      

  5.   

    this.btnHttpWebRequestGZip.Enabled = false;                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://book.sohu.com/20051012/n240526893.shtml");
                    request.Headers.Add("Accept-Encoding", "gzip,deflate");                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream strm = response.GetResponseStream();                byte[] buffer = new byte[1024];
                    int readlength = 0;                FileStream fstream = new FileStream("c:\\abc.gz", FileMode.Create);
                    do
                    {
                        readlength = strm.Read(buffer, 0, buffer.Length);
                        fstream.Write(buffer,0, readlength);
                    } while (readlength > 0);                strm.Close();
                    fstream.Close();
    //上面这段代码是我从sohu的新闻网页用gzip格式得到的数据
    运行后在c:\生成压缩文件,用winrar可解压缩查看
    你自己参考把
      

  6.   

    req = (HttpWebRequest)WebRequest.Create(new System.Uri(url));
      

  7.   

    req = (HttpWebRequest)WebRequest.Create(url);
    ==>>
    req = (HttpWebRequest)WebRequest.Create(new System.Uri(url));
      

  8.   

    我原来也是遇到这样的问题public static string GetHttpSourceValue(string a_strUrl)
    {

    string strResult;
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(new System.Uri(a_strUrl));
    myReq.Method = "GET";
    myReq.Accept = "*/*";
    myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; try
    {
    HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); string tmp = myReq.Headers.ToString(); Stream myStream = HttpWResp.GetResponseStream(); StreamReader sr = new StreamReader(myStream, Encoding.Default);
    StringBuilder strBuilder = new StringBuilder();
    while (-1 != sr.Peek())
    {
    strBuilder.Append(sr.ReadLine() + "\r\n");
    } strResult = strBuilder.ToString();
    // StreamWriter sw = new StreamWriter("E:\\1.txt", false, Encoding.Default);
    // sw.Write(strResult);
    myStream.Close();
    sr.Close();
    //                sw.Close();
    }
    catch (Exception exp)
    {
    strResult = "错误:" + exp.Message;
    }


    return strResult;
    // StreamWriter sw = new StreamWriter(SaveFileName(), false, Encoding.Default);
    // sw.Write(body);
    // sw.Close();
    }
    我现在用的代码
      

  9.   

    谢谢zhangliu_521()  大大的谢谢。我加了这两句 myReq.Accept = "*/*";
    myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";就行了。