1using System;
2using MSXML2;
3using System.Web;
4namespace JJBase.NET.HTTP
5{
6 /// <summary>
7 /// JJBase 的摘要说明。
8 /// </summary>
9 /// RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1
10 /// 协议参考:http://www.cnpaf.net/Class/Rfcen/053291853591170.html
11 /// author:梁俊杰
12 /// date:2005-8-23
13 /// 功能:实现http数据包的发送和接收
14 public class msXML
15 {
16
17 public struct NetData
18 {
19 public RequestHeader RequestHead;
20 public ResponseHeader ResponseHead;
21 }
22 public struct RequestHeader
23 {
24 public string Method;
25 public string Url;
26 public string User;
27 public string Password;
28 public string Accept;
29 public string AcceptCharset;
30 public string AcceptEncoding;
31 public string AcceptLanguage;
32 public string ContentType;
33 public string Authorization;
34 public string CacheControl;
35 public string Expect;
36 public string From;
37 public string Host;
38 public string IfMatch;
39 public string IfModifiedSince;
40 public string IfNoneMatch;
41 public string IfRange;
42 public string IfUnmodifiedSince;
43 public string MaxForwards;
44 public string ProxyAuthorization;
45 public string Range;
46 public string Referer;
47 public string TE;
48 public string UserAgent;
49 public string Pragma;
50 public string Connection;
51 public string ContentLength;
52 public string Cookie;
53 public string SendData;
54 }
55 public struct ResponseHeader
56 {
57 public string StatusCode;
58 public string Allow;
59 public DateTime Date;
60 public string ContentEncoding;
61 public string ContentLanguage;
62 public string ContentLength;
63 public string ContentLocation;
64 public string ContentMD5;
65 public string ContentRange;
66 public string ContentType;
67 public string LastModified;
68 public string Expires;
69 public string AcceptRanges;
70 public string Age;
71 public string ETag;
72 public string Location;
73 public string ProxyAuthenticate;
74 public string RetryAfter;
75 public string Server;
76 public string Vary;
77 public string WWWAuthenticate;
78 public string Pragma;
79 public string Connection;
80 public string SetCookie;
81 public string GetData;
82 public string AllHeaders;
83 }
84
85 public msXML()
86 {
87 //
88 // TODO: 在此处添加构造函数逻辑
89 //
90 }
91 public string GetHtmlData(ref NetData nd)
92 {
93 string result="";
94 string User="";
95 string Password="";
96 string Method="";
97 string g_AllResponseHeaders="";
98 //处理提交数据前的数据头
99 if (nd.RequestHead.User!=""&&nd.RequestHead.User!=null) User=nd.RequestHead.User;
100 if (nd.RequestHead.Password!=""&&nd.RequestHead.Password!=null) Password=nd.RequestHead.Password;
101 if (nd.RequestHead.Method.ToString()==""&&nd.RequestHead.Method==null) {return "";}
102 else{
103 Method=nd.RequestHead.Method.ToString().ToUpper();
104 }
105 MSXML2.ServerXMLHTTP SXmlHttp = new MSXML2.ServerXMLHTTP();
106 if (User==""){SXmlHttp.open(Method,nd.RequestHead.Url,false,"","");}
107 else{
108 SXmlHttp.open(Method,nd.RequestHead.Url,false,User,Password);}
109 if (nd.RequestHead.Accept!=""&&nd.RequestHead.Accept!=null) SXmlHttp.setRequestHeader("Accept",nd.RequestHead.Accept);
110 if (nd.RequestHead.AcceptCharset!=""&&nd.RequestHead.AcceptCharset!=null) SXmlHttp.setRequestHeader("Accept-Charset",nd.RequestHead.AcceptCharset);
111 if (nd.RequestHead.AcceptEncoding!=""&&nd.RequestHead.AcceptEncoding!=null) SXmlHttp.setRequestHeader("Accept-Encoding",nd.RequestHead.AcceptEncoding);
112 if (nd.RequestHead.AcceptLanguage!=""&&nd.RequestHead.AcceptLanguage!=null) SXmlHttp.setRequestHeader("Accept-Language",nd.RequestHead.AcceptLanguage);
113 if (nd.RequestHead.ContentType!=""&&nd.RequestHead.ContentType!=null) SXmlHttp.setRequestHeader("Content-Type",nd.RequestHead.ContentType);
114 if (nd.RequestHead.Authorization!=""&&nd.RequestHead.Authorization!=null) SXmlHttp.setRequestHeader("Authorization",nd.RequestHead.Authorization);
115 if (nd.RequestHead.CacheControl!=""&&nd.RequestHead.CacheControl!=null) SXmlHttp.setRequestHeader("Cache-Control",nd.RequestHead.CacheControl);
116 if (nd.RequestHead.Expect!=""&&nd.RequestHead.Expect!=null) SXmlHttp.setRequestHeader("Expect",nd.RequestHead.Expect);
117 if (nd.RequestHead.From!=""&&nd.RequestHead.From!=null) SXmlHttp.setRequestHeader("From",nd.RequestHead.From);
118 if (nd.RequestHead.Host!=""&&nd.RequestHead.Host!=null) SXmlHttp.setRequestHeader("Host",nd.RequestHead.Host);
119 if (nd.RequestHead.IfMatch!=""&&nd.RequestHead.IfMatch!=null) SXmlHttp.setRequestHeader("If-Match",nd.RequestHead.IfMatch);
120 if (nd.RequestHead.IfModifiedSince!=""&&nd.RequestHead.IfModifiedSince!=null) SXmlHttp.setRequestHeader("If-Modified-Since",nd.RequestHead.IfModifiedSince);
121 if (nd.RequestHead.IfNoneMatch!=""&&nd.RequestHead.IfNoneMatch!=null) SXmlHttp.setRequestHeader("If-None-Match",nd.RequestHead.IfNoneMatch);
122 if (nd.RequestHead.IfRange!=""&&nd.RequestHead.IfRange!=null) SXmlHttp.setRequestHeader("If-Range",nd.RequestHead.IfRange);
123 if (nd.RequestHead.IfUnmodifiedSince!=""&&nd.RequestHead.IfUnmodifiedSince!=null) SXmlHttp.setRequestHeader("If-Unmodified-Since",nd.RequestHead.IfUnmodifiedSince);
124 if (nd.RequestHead.MaxForwards!=""&&nd.RequestHead.MaxForwards!=null) SXmlHttp.setRequestHeader("Max-Forwards",nd.RequestHead.MaxForwards);
125 if (nd.RequestHead.ProxyAuthorization!=""&&nd.RequestHead.ProxyAuthorization!=null) SXmlHttp.setRequestHeader("Proxy-Authorization",nd.RequestHead.ProxyAuthorization);
126 if (nd.RequestHead.Range!=""&&nd.RequestHead.Range!=null) SXmlHttp.setRequestHeader("Range",nd.RequestHead.Range);
127 if (nd.RequestHead.Referer!=""&&nd.RequestHead.Referer!=null) SXmlHttp.setRequestHeader("Referer",nd.RequestHead.Referer);
128 if (nd.RequestHead.TE!=""&&nd.RequestHead.TE!=null) SXmlHttp.setRequestHeader("TE",nd.RequestHead.TE);
129 if (nd.RequestHead.UserAgent!=""&&nd.RequestHead.UserAgent!=null) SXmlHttp.setRequestHeader("User-Agent",nd.RequestHead.UserAgent);
130 if (nd.RequestHead.Pragma!=""&&nd.RequestHead.Pragma!=null) SXmlHttp.setRequestHeader("Pragma",nd.RequestHead.Pragma);
131 if (nd.RequestHead.Connection!=""&&nd.RequestHead.Connection!=null) SXmlHttp.setRequestHeader("Connection",nd.RequestHead.Connection);
132 if (nd.RequestHead.ContentLength!=""&&nd.RequestHead.ContentLength!=null) SXmlHttp.setRequestHeader("Content-Length",nd.RequestHead.ContentLength);
133 if (nd.RequestHead.Cookie!=""&&nd.RequestHead.Cookie!=null) SXmlHttp.setRequestHeader("Cookie",nd.RequestHead.Cookie);
134
135 switch(Method)
136 {
137 case "GET":
138 {
139 try
140 {
141 SXmlHttp.send("");
142 }
143 catch(Exception ex)
144 {
145 return ex.Message.ToString();
146 }
147 finally{}
148 break;
149 }
150 case "POST":
151 {
152 try
153 {
154 SXmlHttp.setRequestHeader("Content-Length",nd.RequestHead.SendData.Length.ToString ());
155 SXmlHttp.send(nd.RequestHead.SendData);
156 }
157 catch(Exception ex)
158 {
159 return ex.Message.ToString();
160 }
161 finally{}
162 break;
163 }
164
165 }
166 nd.ResponseHead.StatusCode=SXmlHttp.status.ToString();
167 g_AllResponseHeaders = SXmlHttp.getAllResponseHeaders();
168 nd.ResponseHead.AllHeaders=g_AllResponseHeaders;
169 //处理返回的数据头
170 if (g_AllResponseHeaders.IndexOf("Allow")>0) nd.ResponseHead.Allow=SXmlHttp.getResponseHeader("Allow");
171 if (g_AllResponseHeaders.IndexOf("Date")>0) nd.ResponseHead.Date=Convert.ToDateTime(SXmlHttp.getResponseHeader("Date"));
172 if (g_AllResponseHeaders.IndexOf("Content-Encoding")>0) nd.ResponseHead.ContentEncoding=SXmlHttp.getResponseHeader("Content-Encoding");
173 if (g_AllResponseHeaders.IndexOf("Content-Language")>0) nd.ResponseHead.ContentLanguage=SXmlHttp.getResponseHeader("Content-Language");
174 if (g_AllResponseHeaders.IndexOf("Content-Length")>0) nd.ResponseHead.ContentLength=SXmlHttp.getResponseHeader("Content-Length");
175 if (g_AllResponseHeaders.IndexOf("Content-Location")>0) nd.ResponseHead.ContentLocation=SXmlHttp.getResponseHeader("Content-Location");
176 if (g_AllResponseHeaders.IndexOf("Content-MD5")>0) nd.ResponseHead.ContentMD5=SXmlHttp.getResponseHeader("Content-MD5");
177 if (g_AllResponseHeaders.IndexOf("Content-Range")>0) nd.ResponseHead.ContentRange=SXmlHttp.getResponseHeader("Content-Range");
178 if (g_AllResponseHeaders.IndexOf("Content-Type")>0) nd.ResponseHead.ContentType=SXmlHttp.getResponseHeader("Content-Type");
179 if (g_AllResponseHeaders.IndexOf("Last-Modified")>0) nd.ResponseHead.LastModified=SXmlHttp.getResponseHeader("Last-Modified");
180 if (g_AllResponseHeaders.IndexOf("Expires")>0) nd.ResponseHead.Expires=SXmlHttp.getResponseHeader("Expires");
181 if (g_AllResponseHeaders.IndexOf("Accept-Ranges")>0) nd.ResponseHead.AcceptRanges=SXmlHttp.getResponseHeader("Accept-Ranges");
182 if (g_AllResponseHeaders.IndexOf("Age")>0) nd.ResponseHead.Age=SXmlHttp.getResponseHeader("Age");
183 if (g_AllResponseHeaders.IndexOf("ETag")>0) nd.ResponseHead.ETag=SXmlHttp.getResponseHeader("ETag");
184 if (g_AllResponseHeaders.IndexOf("Location")>0) nd.ResponseHead.Location=SXmlHttp.getResponseHeader("Location");
185 if (g_AllResponseHeaders.IndexOf("Proxy-Authenticate")>0) nd.ResponseHead.ProxyAuthenticate=SXmlHttp.getResponseHeader("Proxy-Authenticate");
186 if (g_AllResponseHeaders.IndexOf("Retry-After")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
187 if (g_AllResponseHeaders.IndexOf("Server")>0) nd.ResponseHead.Server=SXmlHttp.getResponseHeader("Server");
188 if (g_AllResponseHeaders.IndexOf("Vary")>0) nd.ResponseHead.Vary=SXmlHttp.getResponseHeader("Vary");
189 if (g_AllResponseHeaders.IndexOf("WWW-Authenticate")>0) nd.ResponseHead.WWWAuthenticate=SXmlHttp.getResponseHeader("WWW-Authenticate");
190 if (g_AllResponseHeaders.IndexOf("Pragma")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
191 if (g_AllResponseHeaders.IndexOf("Connection")>0) nd.ResponseHead.Connection=SXmlHttp.getResponseHeader("Connection");
192 if (g_AllResponseHeaders.IndexOf("Set-Cookie")>0) nd.ResponseHead.SetCookie=SXmlHttp.getResponseHeader("Set-Cookie");
193 if (g_AllResponseHeaders.IndexOf("Retry-After")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
194 if (g_AllResponseHeaders.IndexOf("Retry-After")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
195 //取得字符集,不进行此项操作可能出现乱码
196 string charset="gb2312";
197 if (nd.ResponseHead.ContentType.ToString().IndexOf("utf-8")>0){charset="utf-8";}
198 result=BYTE2STR((byte[])SXmlHttp.responseBody,charset);
199 nd.ResponseHead.GetData=result;
200 SXmlHttp=null;
201 return result;
202 }
203 private string BYTE2STR(byte[] vIn,string charset)
204 {
205// int ThisCharCode,NextCharCode,HZCode;
206// string strReturn="";
207// for (int i = 1; i <= vIn.Length ; i++)
208// {
209// ThisCharCode =Convert.ToInt32(vIn[i]);
210// if (ThisCharCode < 128)
211// {
212// strReturn = strReturn +Convert.ToChar(ThisCharCode);
213// }
214// else
215// {
216// NextCharCode =vIn[i+1];
217// HZCode=ThisCharCode * 256 +NextCharCode;
218// strReturn = strReturn + Convert.ToChar(HZCode);
219// i = i + 1;
220// }
221// }
222// return strReturn;
223 try
224 {
225 return System.Text.Encoding.GetEncoding(charset).GetString(vIn).ToString();
226 }
227 catch(Exception ex){return ex.Message;}
228 }
229
230 }
231}
2using MSXML2;
3using System.Web;
4namespace JJBase.NET.HTTP
5{
6 /// <summary>
7 /// JJBase 的摘要说明。
8 /// </summary>
9 /// RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1
10 /// 协议参考:http://www.cnpaf.net/Class/Rfcen/053291853591170.html
11 /// author:梁俊杰
12 /// date:2005-8-23
13 /// 功能:实现http数据包的发送和接收
14 public class msXML
15 {
16
17 public struct NetData
18 {
19 public RequestHeader RequestHead;
20 public ResponseHeader ResponseHead;
21 }
22 public struct RequestHeader
23 {
24 public string Method;
25 public string Url;
26 public string User;
27 public string Password;
28 public string Accept;
29 public string AcceptCharset;
30 public string AcceptEncoding;
31 public string AcceptLanguage;
32 public string ContentType;
33 public string Authorization;
34 public string CacheControl;
35 public string Expect;
36 public string From;
37 public string Host;
38 public string IfMatch;
39 public string IfModifiedSince;
40 public string IfNoneMatch;
41 public string IfRange;
42 public string IfUnmodifiedSince;
43 public string MaxForwards;
44 public string ProxyAuthorization;
45 public string Range;
46 public string Referer;
47 public string TE;
48 public string UserAgent;
49 public string Pragma;
50 public string Connection;
51 public string ContentLength;
52 public string Cookie;
53 public string SendData;
54 }
55 public struct ResponseHeader
56 {
57 public string StatusCode;
58 public string Allow;
59 public DateTime Date;
60 public string ContentEncoding;
61 public string ContentLanguage;
62 public string ContentLength;
63 public string ContentLocation;
64 public string ContentMD5;
65 public string ContentRange;
66 public string ContentType;
67 public string LastModified;
68 public string Expires;
69 public string AcceptRanges;
70 public string Age;
71 public string ETag;
72 public string Location;
73 public string ProxyAuthenticate;
74 public string RetryAfter;
75 public string Server;
76 public string Vary;
77 public string WWWAuthenticate;
78 public string Pragma;
79 public string Connection;
80 public string SetCookie;
81 public string GetData;
82 public string AllHeaders;
83 }
84
85 public msXML()
86 {
87 //
88 // TODO: 在此处添加构造函数逻辑
89 //
90 }
91 public string GetHtmlData(ref NetData nd)
92 {
93 string result="";
94 string User="";
95 string Password="";
96 string Method="";
97 string g_AllResponseHeaders="";
98 //处理提交数据前的数据头
99 if (nd.RequestHead.User!=""&&nd.RequestHead.User!=null) User=nd.RequestHead.User;
100 if (nd.RequestHead.Password!=""&&nd.RequestHead.Password!=null) Password=nd.RequestHead.Password;
101 if (nd.RequestHead.Method.ToString()==""&&nd.RequestHead.Method==null) {return "";}
102 else{
103 Method=nd.RequestHead.Method.ToString().ToUpper();
104 }
105 MSXML2.ServerXMLHTTP SXmlHttp = new MSXML2.ServerXMLHTTP();
106 if (User==""){SXmlHttp.open(Method,nd.RequestHead.Url,false,"","");}
107 else{
108 SXmlHttp.open(Method,nd.RequestHead.Url,false,User,Password);}
109 if (nd.RequestHead.Accept!=""&&nd.RequestHead.Accept!=null) SXmlHttp.setRequestHeader("Accept",nd.RequestHead.Accept);
110 if (nd.RequestHead.AcceptCharset!=""&&nd.RequestHead.AcceptCharset!=null) SXmlHttp.setRequestHeader("Accept-Charset",nd.RequestHead.AcceptCharset);
111 if (nd.RequestHead.AcceptEncoding!=""&&nd.RequestHead.AcceptEncoding!=null) SXmlHttp.setRequestHeader("Accept-Encoding",nd.RequestHead.AcceptEncoding);
112 if (nd.RequestHead.AcceptLanguage!=""&&nd.RequestHead.AcceptLanguage!=null) SXmlHttp.setRequestHeader("Accept-Language",nd.RequestHead.AcceptLanguage);
113 if (nd.RequestHead.ContentType!=""&&nd.RequestHead.ContentType!=null) SXmlHttp.setRequestHeader("Content-Type",nd.RequestHead.ContentType);
114 if (nd.RequestHead.Authorization!=""&&nd.RequestHead.Authorization!=null) SXmlHttp.setRequestHeader("Authorization",nd.RequestHead.Authorization);
115 if (nd.RequestHead.CacheControl!=""&&nd.RequestHead.CacheControl!=null) SXmlHttp.setRequestHeader("Cache-Control",nd.RequestHead.CacheControl);
116 if (nd.RequestHead.Expect!=""&&nd.RequestHead.Expect!=null) SXmlHttp.setRequestHeader("Expect",nd.RequestHead.Expect);
117 if (nd.RequestHead.From!=""&&nd.RequestHead.From!=null) SXmlHttp.setRequestHeader("From",nd.RequestHead.From);
118 if (nd.RequestHead.Host!=""&&nd.RequestHead.Host!=null) SXmlHttp.setRequestHeader("Host",nd.RequestHead.Host);
119 if (nd.RequestHead.IfMatch!=""&&nd.RequestHead.IfMatch!=null) SXmlHttp.setRequestHeader("If-Match",nd.RequestHead.IfMatch);
120 if (nd.RequestHead.IfModifiedSince!=""&&nd.RequestHead.IfModifiedSince!=null) SXmlHttp.setRequestHeader("If-Modified-Since",nd.RequestHead.IfModifiedSince);
121 if (nd.RequestHead.IfNoneMatch!=""&&nd.RequestHead.IfNoneMatch!=null) SXmlHttp.setRequestHeader("If-None-Match",nd.RequestHead.IfNoneMatch);
122 if (nd.RequestHead.IfRange!=""&&nd.RequestHead.IfRange!=null) SXmlHttp.setRequestHeader("If-Range",nd.RequestHead.IfRange);
123 if (nd.RequestHead.IfUnmodifiedSince!=""&&nd.RequestHead.IfUnmodifiedSince!=null) SXmlHttp.setRequestHeader("If-Unmodified-Since",nd.RequestHead.IfUnmodifiedSince);
124 if (nd.RequestHead.MaxForwards!=""&&nd.RequestHead.MaxForwards!=null) SXmlHttp.setRequestHeader("Max-Forwards",nd.RequestHead.MaxForwards);
125 if (nd.RequestHead.ProxyAuthorization!=""&&nd.RequestHead.ProxyAuthorization!=null) SXmlHttp.setRequestHeader("Proxy-Authorization",nd.RequestHead.ProxyAuthorization);
126 if (nd.RequestHead.Range!=""&&nd.RequestHead.Range!=null) SXmlHttp.setRequestHeader("Range",nd.RequestHead.Range);
127 if (nd.RequestHead.Referer!=""&&nd.RequestHead.Referer!=null) SXmlHttp.setRequestHeader("Referer",nd.RequestHead.Referer);
128 if (nd.RequestHead.TE!=""&&nd.RequestHead.TE!=null) SXmlHttp.setRequestHeader("TE",nd.RequestHead.TE);
129 if (nd.RequestHead.UserAgent!=""&&nd.RequestHead.UserAgent!=null) SXmlHttp.setRequestHeader("User-Agent",nd.RequestHead.UserAgent);
130 if (nd.RequestHead.Pragma!=""&&nd.RequestHead.Pragma!=null) SXmlHttp.setRequestHeader("Pragma",nd.RequestHead.Pragma);
131 if (nd.RequestHead.Connection!=""&&nd.RequestHead.Connection!=null) SXmlHttp.setRequestHeader("Connection",nd.RequestHead.Connection);
132 if (nd.RequestHead.ContentLength!=""&&nd.RequestHead.ContentLength!=null) SXmlHttp.setRequestHeader("Content-Length",nd.RequestHead.ContentLength);
133 if (nd.RequestHead.Cookie!=""&&nd.RequestHead.Cookie!=null) SXmlHttp.setRequestHeader("Cookie",nd.RequestHead.Cookie);
134
135 switch(Method)
136 {
137 case "GET":
138 {
139 try
140 {
141 SXmlHttp.send("");
142 }
143 catch(Exception ex)
144 {
145 return ex.Message.ToString();
146 }
147 finally{}
148 break;
149 }
150 case "POST":
151 {
152 try
153 {
154 SXmlHttp.setRequestHeader("Content-Length",nd.RequestHead.SendData.Length.ToString ());
155 SXmlHttp.send(nd.RequestHead.SendData);
156 }
157 catch(Exception ex)
158 {
159 return ex.Message.ToString();
160 }
161 finally{}
162 break;
163 }
164
165 }
166 nd.ResponseHead.StatusCode=SXmlHttp.status.ToString();
167 g_AllResponseHeaders = SXmlHttp.getAllResponseHeaders();
168 nd.ResponseHead.AllHeaders=g_AllResponseHeaders;
169 //处理返回的数据头
170 if (g_AllResponseHeaders.IndexOf("Allow")>0) nd.ResponseHead.Allow=SXmlHttp.getResponseHeader("Allow");
171 if (g_AllResponseHeaders.IndexOf("Date")>0) nd.ResponseHead.Date=Convert.ToDateTime(SXmlHttp.getResponseHeader("Date"));
172 if (g_AllResponseHeaders.IndexOf("Content-Encoding")>0) nd.ResponseHead.ContentEncoding=SXmlHttp.getResponseHeader("Content-Encoding");
173 if (g_AllResponseHeaders.IndexOf("Content-Language")>0) nd.ResponseHead.ContentLanguage=SXmlHttp.getResponseHeader("Content-Language");
174 if (g_AllResponseHeaders.IndexOf("Content-Length")>0) nd.ResponseHead.ContentLength=SXmlHttp.getResponseHeader("Content-Length");
175 if (g_AllResponseHeaders.IndexOf("Content-Location")>0) nd.ResponseHead.ContentLocation=SXmlHttp.getResponseHeader("Content-Location");
176 if (g_AllResponseHeaders.IndexOf("Content-MD5")>0) nd.ResponseHead.ContentMD5=SXmlHttp.getResponseHeader("Content-MD5");
177 if (g_AllResponseHeaders.IndexOf("Content-Range")>0) nd.ResponseHead.ContentRange=SXmlHttp.getResponseHeader("Content-Range");
178 if (g_AllResponseHeaders.IndexOf("Content-Type")>0) nd.ResponseHead.ContentType=SXmlHttp.getResponseHeader("Content-Type");
179 if (g_AllResponseHeaders.IndexOf("Last-Modified")>0) nd.ResponseHead.LastModified=SXmlHttp.getResponseHeader("Last-Modified");
180 if (g_AllResponseHeaders.IndexOf("Expires")>0) nd.ResponseHead.Expires=SXmlHttp.getResponseHeader("Expires");
181 if (g_AllResponseHeaders.IndexOf("Accept-Ranges")>0) nd.ResponseHead.AcceptRanges=SXmlHttp.getResponseHeader("Accept-Ranges");
182 if (g_AllResponseHeaders.IndexOf("Age")>0) nd.ResponseHead.Age=SXmlHttp.getResponseHeader("Age");
183 if (g_AllResponseHeaders.IndexOf("ETag")>0) nd.ResponseHead.ETag=SXmlHttp.getResponseHeader("ETag");
184 if (g_AllResponseHeaders.IndexOf("Location")>0) nd.ResponseHead.Location=SXmlHttp.getResponseHeader("Location");
185 if (g_AllResponseHeaders.IndexOf("Proxy-Authenticate")>0) nd.ResponseHead.ProxyAuthenticate=SXmlHttp.getResponseHeader("Proxy-Authenticate");
186 if (g_AllResponseHeaders.IndexOf("Retry-After")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
187 if (g_AllResponseHeaders.IndexOf("Server")>0) nd.ResponseHead.Server=SXmlHttp.getResponseHeader("Server");
188 if (g_AllResponseHeaders.IndexOf("Vary")>0) nd.ResponseHead.Vary=SXmlHttp.getResponseHeader("Vary");
189 if (g_AllResponseHeaders.IndexOf("WWW-Authenticate")>0) nd.ResponseHead.WWWAuthenticate=SXmlHttp.getResponseHeader("WWW-Authenticate");
190 if (g_AllResponseHeaders.IndexOf("Pragma")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
191 if (g_AllResponseHeaders.IndexOf("Connection")>0) nd.ResponseHead.Connection=SXmlHttp.getResponseHeader("Connection");
192 if (g_AllResponseHeaders.IndexOf("Set-Cookie")>0) nd.ResponseHead.SetCookie=SXmlHttp.getResponseHeader("Set-Cookie");
193 if (g_AllResponseHeaders.IndexOf("Retry-After")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
194 if (g_AllResponseHeaders.IndexOf("Retry-After")>0) nd.ResponseHead.RetryAfter=SXmlHttp.getResponseHeader("Retry-After");
195 //取得字符集,不进行此项操作可能出现乱码
196 string charset="gb2312";
197 if (nd.ResponseHead.ContentType.ToString().IndexOf("utf-8")>0){charset="utf-8";}
198 result=BYTE2STR((byte[])SXmlHttp.responseBody,charset);
199 nd.ResponseHead.GetData=result;
200 SXmlHttp=null;
201 return result;
202 }
203 private string BYTE2STR(byte[] vIn,string charset)
204 {
205// int ThisCharCode,NextCharCode,HZCode;
206// string strReturn="";
207// for (int i = 1; i <= vIn.Length ; i++)
208// {
209// ThisCharCode =Convert.ToInt32(vIn[i]);
210// if (ThisCharCode < 128)
211// {
212// strReturn = strReturn +Convert.ToChar(ThisCharCode);
213// }
214// else
215// {
216// NextCharCode =vIn[i+1];
217// HZCode=ThisCharCode * 256 +NextCharCode;
218// strReturn = strReturn + Convert.ToChar(HZCode);
219// i = i + 1;
220// }
221// }
222// return strReturn;
223 try
224 {
225 return System.Text.Encoding.GetEncoding(charset).GetString(vIn).ToString();
226 }
227 catch(Exception ex){return ex.Message;}
228 }
229
230 }
231}