我正在用 C# 编写一个 ASP.NET 服务器,它需要从外部服务器获取一堆图像。我遇到的问题是图像是从我的方法返回的,但看起来它们只加载了一半。
这是通过我的服务器加载磁贴时的样子(它是 OSM 循环地图磁贴):
如果我只是在浏览器中打开它(当然来自同一个 URL),这就是它的样子:
我很清楚所有字节都没有通过网络传输,但我不确定它们在哪里丢失。这就是我的代码的样子:
private byte[] GetTile(string url)
{
var response = WebRequest.Create(url).GetResponse();
Stream respStr = response.GetResponseStream();
byte[] buf = new byte[response.ContentLength];
respStr.Read(buf, 0, buf.Length);
return buf;
}
这也不是正确的方法。我的字节去哪儿了?在我从函数返回之前,是否有推荐的方法来等待来自服务器的所有字节到达?