Xet*_*ius 4 c# image http stream
我正在尝试编写一个代理,它从一个服务器读取一个图像并将其返回给提供的HttpContext,但我只是回到了字符流.
我正在尝试以下方法:
WebRequest req = WebRequest.Create(image);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
StreamWriter sw = new StreamWriter (context.Response.OutputStream);
sw.Write (sr.ReadToEnd());
Run Code Online (Sandbox Code Playgroud)
但正如我之前提到的,这只是回应文本.
我该怎么说它是一张图片?
编辑:我正在img标记的source属性的网页中访问它.将内容类型设置为application/octet-stream提示保存文件并将其设置为image/jpeg只响应文件名.我想要的是调用页面返回和显示的图像.
Joh*_*ers 14
既然你正在使用二进制文件,你不想使用StreamReader,这是一个文本阅读器!
现在,假设您已正确设置内容类型,您应该只使用响应流:
const int BUFFER_SIZE = 1024 * 1024;
var req = WebRequest.Create(imageUrl);
using (var resp = req.GetResponse())
{
using (var stream = resp.GetResponseStream())
{
var bytes = new byte[BUFFER_SIZE];
while (true)
{
var n = stream.Read(bytes, 0, BUFFER_SIZE);
if (n == 0)
{
break;
}
context.Response.OutputStream.Write(bytes, 0, n);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8888 次 |
| 最近记录: |