• 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);
                }
            }
        }
    }
  • 相关阅读:
    【GPS】Android O平台如何设置SUPL地址,以及GPS三个配置文件的优先级分析
    【GPS】gps.conf文件解读
    【GPS】SAP测试GPS模块拿不到sensor数据
    Linux系统安装Samba共享服务器详解及安装配置
    CentOS 6.5 编译安装 LNMP环境
    linux禁止root用户直接登录
    Linux下安装配置日志服务器
    Windows系统安装Oracle 11g客户端
    Linux系统zabbix_agentd客户端安装与配置
    Redhat6.5——解决yum功能不能正常使用
  • 原文地址:https://www.cnblogs.com/qidian10/p/2650815.html
Copyright © 2020-2023  润新知