欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

使用C#获取远程图片 Form用户名与密码Authorization认证的实现

时间:2020-10-16 12:57:56|栏目:.NET代码|点击:

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);
            }
        }
    }
}

上一篇:jquery中如何获得服务器控件实现思路

栏    目:.NET代码

下一篇:在Web用户控件中引用样式表中样式的方法

本文标题:使用C#获取远程图片 Form用户名与密码Authorization认证的实现

本文地址:http://www.codeinn.net/misctech/12351.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有