苏飞论坛

标题: 【HttpHelper万能框架教程】- 获取图片验证码 [打印本页]

作者: 站长苏飞    时间: 2014-9-9 16:10
标题: 【HttpHelper万能框架教程】- 获取图片验证码
导读部分

【HttpHelper万能框架】教程目录贴  http://www.sufeinet.com/thread-9989-1-1.html


教程部分


方法签名如下
[C#] 纯文本查看 复制代码
  /// <summary>        /// 根据Url获取图片
        /// </summary>
        /// <param name="item">HttpItem参数</param>
        /// <returns>返回图片,错误为NULL</returns>
        public Image GetImage(HttpItem item)


使用教程
有两种方法获取图片。

第一种是直接使用配置生成。这种需要大家自己写转化图片的方法,和配置参数,如下
[C#] 纯文本查看 复制代码
 protected void Page_Load(object sender, EventArgs e)
        {

            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com/template/veikei_dz_life_20130810_plus/images/logo.png?2014-06-06",
                Method = "get",//URL     可选项 默认为Get   
                ResultType = ResultType.Byte
            };
            HttpResult result = http.GetHtml(item);
            Image img = byteArrayToImage(result.ResultByte);

        }

        /// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            MemoryStream ms = new MemoryStream(Bytes);
            return Bitmap.FromStream(ms, true);
        }

这种方法功能比较强大,大家可以随意配置,但是也有不好的地方就是。不太方便。



万能框架还提供一种获取图片的方法,如下所示
[C#] 纯文本查看 复制代码
   HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com/template/veikei_dz_life_20130810_plus/images/logo.png?2014-06-06",
                Method = "get",//URL     可选项 默认为Get   
            };
            Image img = http.GetImage(item);

是的你没有看错,就是只需要调用一个方法就OK

作者: jmoney    时间: 2014-9-14 20:00
每次请求都会获取一个新的session,图片地址是带session参数的

每次获得图片地址后,输入验证码去访问,这个时候验证码其实是新的session的验证码,这样每次都是验证码错误?如何破?
作者: 站长苏飞    时间: 2014-9-14 21:03
jmoney 发表于 2014-9-14 20:00
每次请求都会获取一个新的session,图片地址是带session参数的

每次获得图片地址后,输入验证码去访问, ...

使用登录页面Cookie,Cookie里有SessionID,使用这个SessionID去获取就行 了
作者: chengulv    时间: 2014-9-24 00:04
学习中。
作者: huanghua1234    时间: 2014-10-17 09:45
强烈支持楼主ing……
作者: wulinfeng2008    时间: 2014-11-27 11:19
是否可以获取验证码后直接输入到框格中模拟登录呢?
作者: 329616    时间: 2015-3-23 14:04
万能框架还提供一种获取图片的方法 我用控制台弄好像不行啊 运行后提示System.Drawing.Bitmap 怎么变成字节数组
作者: 站长苏飞    时间: 2015-3-23 14:06
329616 发表于 2015-3-23 14:04
万能框架还提供一种获取图片的方法 我用控制台弄好像不行啊 运行后提示System.Drawing.Bitmap 怎么变成字节 ...

用第一种方式获取的就是字节
作者: Xhy111    时间: 2015-5-8 12:46
强烈支持楼主ing……
作者: hadwin_Y4Wm5    时间: 2016-5-11 08:23
强烈支持楼主ing……
作者: wangxiao    时间: 2017-5-8 16:31
楼主,我用的是第一种方法,但是我发现result.ResultByte结果是空的,例子也是你上面贴出来的例子,这是什么?
作者: wangxiao    时间: 2017-5-8 16:32
我发现是我这边的问题,谢谢楼主,测试成功了
作者: wangxiao    时间: 2017-5-8 16:34
wangxiao 发表于 2017-5-8 16:31
楼主,我用的是第一种方法,但是我发现result.ResultByte结果是空的,例子也是你上面贴出来的例子,这是什 ...

我发现是我这边的问题,谢谢楼主,测试成功了
作者: sunnfhrb    时间: 2019-8-22 23:12
是否可以用在winform应用中呢。
作者: 站长苏飞    时间: 2019-8-23 08:14
sunnfhrb 发表于 2019-8-22 23:12
是否可以用在winform应用中呢。

可以
作者: ofaith    时间: 2020-2-5 22:30
Image img = http.GetImage(item);
我使用http.GetImage方法的时候,提示:
错误        CS1061        '“HttpHelper”未包含“GetImage”的定义,并且找不到可接受第一个“HttpHelper”类型参数的可访问扩展方法“GetImage”(是否缺少 using 指令或程序集引用?)


作者: 站长苏飞    时间: 2020-2-6 08:46
ofaith 发表于 2020-2-5 22:30
Image img = http.GetImage(item);
我使用http.GetImage方法的时候,提示:
错误        CS1061        '“HttpHelper” ...

用的类还是框架你
作者: ofaith    时间: 2020-2-6 14:59
站长苏飞 发表于 2020-2-6 08:46
用的类还是框架你

我后面用dll直接搞定了
大佬,群验证帮忙通过下,谢谢!




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4