使用C#获取远程图片 Form用户名与密码Authorization认证的实现
发布时间:2022-01-22 21:44:06
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);
}
}
}
}


猜你喜欢
- 使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置。使用注解,可以在大多数情况下避免使用
- 本文实例为大家分享了C语言实现俄罗斯方块的具体代码,供大家参考,具体内容如下GitHub:【C语言】实现俄罗斯方块源代码Head.h#ifn
- 由于项目这种类型的图片按钮比较多,所以重写了ImageButton类。package me.henji.widget;import andr
- 一、概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射
- 本文实例为大家分享了Android实现画板的具体代码,采用的技术是双缓冲技术,供大家参考,具体内容如下1.双缓冲技术的概念所谓的双缓冲技术其
- 前言ParametersInterceptor * 其主要功能是把ActionContext中的请求参数设置到ValueStack中,如果栈
- 我们知道,编写一个Java程序后,如果想让自己编写的代码可以正常运行,我们便需要对它进行编译和运行,而Java环境变量的配置就显得尤为重要,
- 在上篇文章给大家介绍了使用XSD校验Mybatis的SqlMapper配置文件的方法(1),需要的朋友可以参考下。编写好XSD文件,然后来看
- Spring Cloud是现在流行的分布式服务框架,它提供了很多有用的组件。比如:配置中心、Eureka服务发现、消息总线、熔断机制等。配置
- 一、前言虽然jdk1.9版本已经问世,但是许多其他的配套设施并不一定支持jdk1.9版本,所以这里仅带领你配置jdk1.8。而jdk1.9的
- 本文实例分析了Android中BaseAdapter的用法。分享给大家供大家参考,具体如下:最近做一个项目,项目中用到了ListView,L
- 打开idea项目后部分目录下出现橙色的时钟标志(如下):可以看到所有的java文件都显示了后缀名.java,文件的图标都变成了橙色的原因项目
- 什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。每一个链表都包含多个节点,
- Bean三种自定义初始化和销毁一. 三种方法概述在配置类中指定 @Bean(initMethod = “init&
- hello, everyone. Long time no see. 本期文章,我们主要讲解一下二叉树的相关概念,顺便也把搜索二叉树(也叫二
- 主要是因为GZipStream的构造函数中第一个需要传入一个Stream,第二个是指定操作方式:压缩还是解压缩。当时的疑问点主要有:1.我传
- 自动注入和@Autowire@Autowire不属于自动注入!注入方式(重要)在Spring官网上(文档),定义了在Spring中的注入方式
- 本文将引导大家做一个音乐播放器,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的List
- 本文实例讲述了C#装饰者模式。分享给大家供大家参考。具体方法如下:using System;using System.Collections
- 问题1springboot注册 * 过滤器方法注册 * :在启动类中注册bean@EnableWebMvc@Configurationsta