Esempio n. 1
0
        public static async System.Threading.Tasks.Task <string> GetHtml(this HttpClient httpClient, string url)
        {
            var content = string.Empty;
            var data    = await httpClient.GetByteArrayAsync(url);

            var ide          = new IdentifyEncoding();
            var encodingName = ide.GetEncodingString(IdentifyEncoding.ToSByteArray(data));
            var encoding     = System.Text.Encoding.GetEncoding(encodingName);

            content = encoding.GetString(data);

            return(content);
        }
Esempio n. 2
0
        /// <summary>
        /// 从指定位置开始读取数据,直到接收到停止消息。
        /// </summary>
        public void Read(int offset)
        {
            //下面这句话保证,每次都从OneTimeRead的倍数位置读取数据
            offset = offset / OneTimeRead * OneTimeRead;

            byte[] bytes = new byte[OneTimeRead];
            TotalLen      = _cacheBuffer.Read(offset, bytes);
            StartedOffset = offset;

            string encodingName = identifyEncoding.GetEncodingName(IdentifyEncoding.ToSByteArray(bytes));
            string text         = Encoding.GetEncoding(encodingName).GetString(bytes, 0, TotalLen);

            Text = text;
        }
Esempio n. 3
0
        public string GetString(string encodingName, byte[] bytes, int count)
        {
            if (string.IsNullOrWhiteSpace(encodingName))
            {
                try
                {
                    string autoCheckName = _identifyEncoding.GetEncodingName(IdentifyEncoding.ToSByteArray(bytes));
                    string text          = Encoding.GetEncoding(autoCheckName).GetString(bytes, 0, count);
                    return(text);
                }
                catch (Exception)
                {
                    encodingName = "Hex";
                }
            }

            if (encodingName == "Hex")
            {
                string text = BytesToHexString(bytes, count);
                return(text);
            }
            return(string.Empty);
        }