标签: responsestream

通过我的服务器将文件从远程服务器复制到客户端浏览器,而无需将整个文件写入磁盘或内存

这就是场景.

远程文件服务器上有一个文件(假设我有一个托管在DropBox上的文件)

我想在我的网络应用程序上下载该文件(c#asp.net 4.0)

我想隐藏原始文件的100%位置(我希望它看起来来自我的服务器).

我不想将此文件写入内存或我的服务器上的磁盘.

我曾假设我想使用流来进行流式复制.例

Stream inputStream = response.GetResponseStream();
inputStream.CopyTo(Response.OutputStream, 4096);

inputStream.Flush();

Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)

然而,这会将整个流复制到内存中,然后再将其写入客户端浏览器.任何想法都会很棒.

我需要我的服务器基本上只是充当代理并屏蔽原始文件位置

谢谢你的帮助.

c# stream getresponsestream filestream responsestream

4
推荐指数
2
解决办法
1224
查看次数

冗长的代码行与可读性

这是非常好的C#代码,并提供正确的URL提供良好.但是,通过降低代码的可读性,一切都只在一行完成.

这是代码:

         return new StreamReader(WebRequest.Create(urlName).GetResponse().GetResponseStream()).ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

我只是想知道开发人员对这种编写代码的简短方式的看法

.net c# webrequest streamreader responsestream

3
推荐指数
2
解决办法
391
查看次数

如何以正确的字符串形式获取httpWebresponse的内容?

有时我会从几个网站得到一些乱码回复.

这是我的代码:

Stream responseStream = response.GetResponseStream();
buffer = new Byte[256];//
int bytesRead;
while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
   outStream.Write(buffer, 0, bytesRead);
   //resp=resp+ .UTF8.GetString(buffer, 0, bytesRead);
   resp=resp + Encoding.ASCII.GetString(buffer); //resp is string
}
Run Code Online (Sandbox Code Playgroud)

当我从www.google.co.in请求时,我在resp字符串中得到以下字符:

?\ B\0\0\0\0\0ερ}ÿ·F ?????????Ž?????? {7米??? OX吗?\ r?ÿ??? 33 ?? d; Y ???? N 0?

我该如何克服这个问题?它与编码有关吗?

c# character-encoding httpwebresponse responsestream

0
推荐指数
1
解决办法
2万
查看次数