예제 #1
0
        /// <summary>
        /// 获取验证码,并且识别
        /// </summary>
        /// <param name="yzmUrl"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public Image GetVcImage(string vcUrl, ref string code, ref CookieContainer vcCookie)
        {
            Image      vcImage = null;
            HttpClient client  = new HttpClient(vcCookie);
            //while (true)
            //{
            Stream stream = client.GetImageStream(vcUrl);

            vcImage = Image.FromStream(stream);
            ImageRealize ir = new ImageRealize();

            //code = ir.GetCode(vcImage);
            //if (CheckVc(vcCookie, code))
            //{
            //    break;
            //}
            //byte[] m_buffer = new byte[4096];
            //int offset = 0;
            //int count = 0;
            //do
            //{
            //    count = stream.Read(m_buffer, offset, m_buffer.Length - offset);
            //    if (count > 0)
            //    {
            //        offset += count;
            //    }

            //}
            //while (count > 0);
            //if (offset > 0)
            //{
            //    StringBuilder codeBuilder = new StringBuilder(8, 8);
            //    byte[] ret = new byte[offset];
            //    Array.Copy(m_buffer, ret, offset);
            //    codeBuilder.Length = 0;
            //    if (ret.Length > 0)
            //    {
            //        if (GetCodeFromBuffer(1, ret, ret.Length, codeBuilder))
            //        {
            //            code = codeBuilder.ToString().ToUpper();
            //        }
            //        if (code.Length == 4)
            //        {
            //            code = code.Replace("V", "N").Replace("B", "8");
            //            if (CheckVc(vcCookie, code))
            //            {
            //                vcImage = Image.FromStream(new MemoryStream(ret, false));
            //                break;
            //            }
            //        }
            //    }

            //}
            stream.Close();
            //}
            return(vcImage);
        }
        /// <summary>
        /// 获取验证码,并且识别
        /// </summary>
        /// <param name="yzmUrl"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public Image GetVcImage(string vcUrl,ref string code,ref CookieContainer vcCookie)
        {
            Image vcImage = null;
            HttpClient client = new HttpClient(vcCookie);
            //while (true)
            //{
                Stream stream = client.GetImageStream(vcUrl);
                vcImage = Image.FromStream(stream); 
                ImageRealize ir = new ImageRealize();
                //code = ir.GetCode(vcImage);
                //if (CheckVc(vcCookie, code))
                //{
                //    break;
                //}
                //byte[] m_buffer = new byte[4096];
                //int offset = 0;
                //int count = 0;
                //do
                //{
                //    count = stream.Read(m_buffer, offset, m_buffer.Length - offset);
                //    if (count > 0)
                //    {
                //        offset += count;
                //    }

                //}
                //while (count > 0);
                //if (offset > 0)
                //{
                //    StringBuilder codeBuilder = new StringBuilder(8, 8);
                //    byte[] ret = new byte[offset];
                //    Array.Copy(m_buffer, ret, offset);
                //    codeBuilder.Length = 0;
                //    if (ret.Length > 0)
                //    {
                //        if (GetCodeFromBuffer(1, ret, ret.Length, codeBuilder))
                //        {
                //            code = codeBuilder.ToString().ToUpper();
                //        }
                //        if (code.Length == 4)
                //        {
                //            code = code.Replace("V", "N").Replace("B", "8");
                //            if (CheckVc(vcCookie, code))
                //            {
                //                vcImage = Image.FromStream(new MemoryStream(ret, false));
                //                break;
                //            }
                //        }
                //    }

                //}
                stream.Close();
            //}
            return vcImage;
            
        }