/// <summary> /// �����ഫ������ݣ��õ���Ӧҳ������ /// </summary> /// <param name="objhttpitem">���������</param> /// <returns>����HttpResult����</returns> public HttpResult GetHtml(HttpItem objhttpitem) { //���ز��� HttpResult result = new HttpResult(); try { //������ SetRequest(objhttpitem); } catch (Exception ex) { result = new HttpResult(); result.Cookie = string.Empty; result.Header = null; result.Html = ex.Message; result.StatusDescription = "���ò���ʱ�����" + ex.Message; return result; } try { #region �õ������response using (response = (HttpWebResponse)request.GetResponse()) { result.StatusCode = response.StatusCode; result.StatusDescription = response.StatusDescription; result.Header = response.Headers; if (response.Cookies != null) result.CookieCollection = response.Cookies; if (response.Headers["set-cookie"] != null) result.Cookie = response.Headers["set-cookie"]; MemoryStream _stream = new MemoryStream(); //GZIIP���� if (response.ContentEncoding != null && response.ContentEncoding.Equals("gzip", StringComparison.InvariantCultureIgnoreCase)) { //��ʼ��ȡ�������ñ��뷽ʽ //new GZipStream(response.GetResponseStream(), CompressionMode.Decompress).CopyTo(_stream, 10240); //.net4.0����д�� _stream = GetMemoryStream(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress)); } else { //��ʼ��ȡ�������ñ��뷽ʽ //response.GetResponseStream().CopyTo(_stream, 10240); //.net4.0����д�� _stream = GetMemoryStream(response.GetResponseStream()); } //��ȡByte byte[] RawResponse = _stream.ToArray(); _stream.Close(); //�Ƿ�Byte�������� if (objhttpitem.ResultType == ResultType.Byte) result.ResultByte = RawResponse; //�����↑ʼ����Ҫ���ӱ����� if (encoding == null) { Match meta = Regex.Match(Encoding.Default.GetString(RawResponse), "<meta([^<]*)charset=([^<]*)[\"']", RegexOptions.IgnoreCase); string charter = (meta.Groups.Count > 1) ? meta.Groups[2].Value.ToLower() : string.Empty; if (charter.Length > 2) encoding = Encoding.GetEncoding(charter.Trim().Replace("\"", "").Replace("'", "").Replace(";", "").Replace("iso-8859-1", "gbk")); else { if (string.IsNullOrEmpty(response.CharacterSet)) encoding = Encoding.UTF8; else encoding = Encoding.GetEncoding(response.CharacterSet); } } //�õ����ص�HTML result.Html = encoding.GetString(RawResponse); } #endregion } catch (WebException ex) { //�������ڷ����쳣ʱ���صĴ�����Ϣ response = (HttpWebResponse)ex.Response; result.Html = ex.Message; if (response != null) { result.StatusCode = response.StatusCode; result.StatusDescription = response.StatusDescription; } } catch (Exception ex) { result.Html = ex.Message; } if (objhttpitem.IsToLower) result.Html = result.Html.ToLower(); return result; }