System.Net.WebException: 'The remote server returned an error: (400) Bad Request.' when trying to download data from google server
System.Net.WebException: 'The remote server returned an error: (400) Bad Request.' when trying to download data from google server
我正在使用 WebClient 从 cbk0.google.com 下载图像,但我每次都开始收到错误 System.Net.WebException: 'The remote server returned an error: (400) Bad Request.'
。我提出了大约 200000 个请求,所有请求都作为测试正常工作,从那时起,我提出的每个请求都会导致此异常。但是,我可以在浏览器中正常查看 url。我是否超过了 google 允许单个用户在 24 小时内发出的请求数量?他们有限制吗?如果有的话,有没有办法绕过限制?
错误可能是我的,所以这是我的代码:
Image[,] images = new Image[26, 13];
Parallel.For(0, 26, x => {
Parallel.For(0, 13, y => {
using (WebClient client = new WebClient())
images[x, y] = Image.FromStream(new MemoryStream(client.DownloadData(Get.TileURL(panoID, x, y))));
});
});
Get.TileUrl:
public static string TileURL(string panoID, int x, int y, int zoomLevel = 5)
{
return "http://cbk0.google.com/cbk?output=tile&panoid=" + panoID + "&zoom=" + zoomLevel + "&x=" + x + "&y=" + y;
}
我尝试捕获异常以查看它是否是一次性的,但它导致每个请求都出现相同的异常。
Here is the network log for the code seen above and here 是标准 for 循环中 运行 时的日志文件。
我尝试过的事情:
- 正在清除我的 DNS 缓存
- 正在删除我的浏览器 cookie
- 正在清除我的浏览器缓存
问题出在我喂它的那种 pano id 上。 cbk0.google.com 和 maps.google.com 都不能使用以 CAoSLEFGMVFpcE
开头的全景图 id 用于平铺输出,但是这些类型的全景图对于 google 记录的 api 仍然有效。
我正在使用 WebClient 从 cbk0.google.com 下载图像,但我每次都开始收到错误 System.Net.WebException: 'The remote server returned an error: (400) Bad Request.'
。我提出了大约 200000 个请求,所有请求都作为测试正常工作,从那时起,我提出的每个请求都会导致此异常。但是,我可以在浏览器中正常查看 url。我是否超过了 google 允许单个用户在 24 小时内发出的请求数量?他们有限制吗?如果有的话,有没有办法绕过限制?
错误可能是我的,所以这是我的代码:
Image[,] images = new Image[26, 13];
Parallel.For(0, 26, x => {
Parallel.For(0, 13, y => {
using (WebClient client = new WebClient())
images[x, y] = Image.FromStream(new MemoryStream(client.DownloadData(Get.TileURL(panoID, x, y))));
});
});
Get.TileUrl:
public static string TileURL(string panoID, int x, int y, int zoomLevel = 5)
{
return "http://cbk0.google.com/cbk?output=tile&panoid=" + panoID + "&zoom=" + zoomLevel + "&x=" + x + "&y=" + y;
}
我尝试捕获异常以查看它是否是一次性的,但它导致每个请求都出现相同的异常。
Here is the network log for the code seen above and here 是标准 for 循环中 运行 时的日志文件。
我尝试过的事情:
- 正在清除我的 DNS 缓存
- 正在删除我的浏览器 cookie
- 正在清除我的浏览器缓存
问题出在我喂它的那种 pano id 上。 cbk0.google.com 和 maps.google.com 都不能使用以 CAoSLEFGMVFpcE
开头的全景图 id 用于平铺输出,但是这些类型的全景图对于 google 记录的 api 仍然有效。