posted on 2005-05-18 10:44
大部分代码参考.Text Blog
using System;
using ;
using System.IO;
using System.Text;
namespace test
{
public class HttpServerRequest
{
private const int defaultTimeout_ = 60000;
private static string referer_ = @"外链网址已屏蔽www.okbase.net";
private int _nTimeout = 0;
public int Timeout
{
get
{
return _nTimeout;
}
set
{
_nTimeout = value;
}
}
public HttpWebRequest CreateRequest(string url)
{
return CreateRequest(url,referer_);
}
public HttpWebRequest CreateRequest(string url, string referral)
{
WebRequest req = WebRequest.Create(url);
HttpWebRequest wreq = req as HttpWebRequest;
if (null != wreq)
{
wreq.UserAgent = "Mozilla/4.0"; // 不添加UserAgent可能无法穿透某些防火墙
wreq.Referer = referral;
wreq.Timeout = (_nTimeout > 0)? _nTimeout : defaultTimeout_;
}
return wreq;
}
public HttpWebResponse GetResponse(string url)
{
return GetResponse(url,referer_);
}
public HttpWebResponse GetResponse(string url, string referral)
{
HttpWebRequest request = CreateRequest(url);
return (HttpWebResponse)request.GetResponse() ;
}
public string GetPageText(string url)
{
return GetPageText(url,referer_);
}
public string GetPageText(string url, string referral)
{
string str;
HttpWebResponse response = GetResponse(url);
using (Stream s = response.GetResponseStream())
{
string enc = response.ContentEncoding.Trim() ;
if ( enc == "" )
enc = "gb2312"; //enc = "us-ascii";
Encoding encode = System.Text.Encoding.GetEncoding(enc);
using ( StreamReader sr = new StreamReader( s, encode ) )
{
str=sr.ReadToEnd() ;
}
}
response.Close();
return str;
}
}
///
/// Class1 的摘要说明。
///
class Class1
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main(string[] args)
{
try
{
HttpServerRequest ServerRequest = new HttpServerRequest();
ServerRequest.Timeout = 16000; // 超时16秒
string pageText = ServerRequest.GetPageText("外链网址已屏蔽www.okbase.net/");
Console.WriteLine(pageText);
}
catch(.WebException ex)
{
Console.WriteLine("出错:"+ex.Message);
}
catch(Exception ex)
{
Console.WriteLine("出错:"+ex.Message);
}
}
}
}