HttpWebRequest获取远程WEB主机HTTP页面(C#)
posted on 2005-05-18 10:44
大部分代码参考.Text Blog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | 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; } } /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [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); } } }} |
目录 返回
首页