这个图片地址如下 
[XHTML] 纯文本查看 复制代码 https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368  
大家看清楚了,是Https的网站,也就是说是需要证书才能访问了,这个只要获取证书就行了,方法如下 
先直接在浏览器输入这个网站然后回车 
 
 
然后再单击如下图片位置 
 
 
会出现如下界面 
 
 
我我选择详细信息里面的 复制到文件 
 
 
在下一步之后选择第二项目,就是Base64编码 
 
 
给证书选择一个存放的位置这也是一会儿写代码时需要的位置 
 
 
然后下一步单击完成就行了 
 
 
看到这个时表示你成功了。 
使用Httphelper的代码如下 
[C#] 纯文本查看 复制代码         /// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            MemoryStream ms = new MemoryStream(Bytes);
            Image outputImg = Image.FromStream(ms);
            return outputImg;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368",//URL     必需项    
                Method = "get",//URL     可选项 默认为Get   
                CerPath = "D:\\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数      
                ResultType = ResultType.Byte
            };
            HttpResult result = http.GetHtml(item);
            //获取到的图片
            Image im = byteArrayToImage(result.ResultByte);
            pictureBox1.Image = im;
        } 
执行效果如下 
 
 
千完不要再说是我的类有Bug了,呵呵 
到这里问题就解决了。 
原理大家可以看这里 
http://www.sufeinet.com/thread-215-1-1.html 
 
 |