zoukankan      html  css  js  c++  java
  • C#获取远程图片,需要Form用户名和密码的Authorization认证

    C#获取远程图片,需要Form用户名和密码的Authorization认证

    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace Web.App_Code
    {
        public partial class GetFlexImage : System.Web.UI.Page
        {
            public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            
            protected void Page_Load(object sender, EventArgs e)
            {
                if(Request["IMG"]==null||string.IsNullOrEmpty(Request["IMG"]))
                {
                    return;
                }
                try
                {
                    string url = (Request["IMG"]).Replace("%","%25");
                    HttpWebRequest WRequest;
                    HttpWebResponse response = null;
                    Uri uri = new Uri(url);
                    CredentialCache cc = new CredentialCache();
                    cc.Add(uri, "Basic", new NetworkCredential("epapi", "密码"));
                    WRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
                    WRequest.Credentials = cc;
                    WRequest.PreAuthenticate = true;
                    WRequest.Method = "POST";
                    WRequest.AllowWriteStreamBuffering = false;
                    WRequest.SendChunked = false;
                    WRequest.KeepAlive = true;
                    WRequest.ContentLength = 0;
    
                    //WRequest.SendChunked = true;
                    //WRequest.ContentLength = 100000;
                    WRequest.Timeout = 30000;
                    WRequest.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes("epapi:epapiadmin")));
                    try
                    {
                        response = (HttpWebResponse)WRequest.GetResponse();
                    }
                    catch (WebException er)
                    {
                        response = (HttpWebResponse)er.Response;
                    }
                    Bitmap myImage = new Bitmap(response.GetResponseStream());
                    MemoryStream ms = new MemoryStream();
                    myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                    Response.ClearContent();
                    Response.ContentType = "image/gif";
                    log.Debug("图片加载:" + (Request["IMG"]));
                    Response.BinaryWrite(ms.ToArray());
                }
                catch(Exception err) {
                    log.Debug("图片加载异常:" + Server.HtmlDecode(Request["IMG"]) + err.Message);
                }
            }
        }
    }
  • 相关阅读:
    win2008服务器,fastCGI完美设置教程
    IIS7中配置FastCGI运行PHP
    Apple 移动设备绑定动态生成元素点击事件$(document).on('click',element,callback)失效解决方法
    MacOS Catalina 10.15 brew 安装 PHP 和 使用 pecl 安装 Mcrypt
    Redis 列表命令记录
    Redis hash类型命令
    Redis 字符串命令
    Redis 通用命令记录
    Redis 三种启动方式
    Mac 使用 wget 安装 Redis3.0
  • 原文地址:https://www.cnblogs.com/qidian10/p/2650815.html
Copyright © 2011-2022 走看看