每天都学一点

HttpWebRequest获取远程WEB主机HTTP页面(C#)

10 04月
作者:林健|分类:C# 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);
            }
 
        }
    }
}

 

 

 

 


    浏览1 评论0
    返回
    目录
    返回
    首页
    交换机的BPDU保护防环路 创建pip.ini并设置镜像网址的批处理

    发表评论