zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

c#密码认证密码 实现 使用 远程 获取
2023-06-13 09:14:52 时间

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

复制代码代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Drawing;
usingSystem.IO;
usingSystem.Linq;
usingSystem.Net;
usingSystem.Text;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;

namespaceWeb.App_Code
{
   publicpartialclassGetFlexImage:System.Web.UI.Page
   {
       publicstaticreadonlylog4net.ILoglog=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

       protectedvoidPage_Load(objectsender,EventArgse)
       {
           if(Request["IMG"]==null||string.IsNullOrEmpty(Request["IMG"]))
           {
               return;
           }
           try
           {
               stringurl=(Request["IMG"]).Replace("%","%25");
               HttpWebRequestWRequest;
               HttpWebResponseresponse=null;
               Uriuri=newUri(url);
               CredentialCachecc=newCredentialCache();
               cc.Add(uri,"Basic",newNetworkCredential("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(newASCIIEncoding().GetBytes("epapi:epapiadmin")));
               try
               {
                   response=(HttpWebResponse)WRequest.GetResponse();
               }
               catch(WebExceptioner)
               {
                   response=(HttpWebResponse)er.Response;
               }
               BitmapmyImage=newBitmap(response.GetResponseStream());
               MemoryStreamms=newMemoryStream();
               myImage.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
               Response.ClearContent();
               Response.ContentType="image/gif";
               log.Debug("图片加载:"+(Request["IMG"]));
               Response.BinaryWrite(ms.ToArray());
           }
           catch(Exceptionerr){
               log.Debug("图片加载异常:"+Server.HtmlDecode(Request["IMG"])+err.Message);
           }
       }
   }
}