我想从http://random.cat/
得到随机的图片,所以我想用Directory.GetFiles
或类似的东西来索引它们,但这不起作用。那么得到Directory.GetFiles
的功能的最好方法是什么,但是对于http://random.cat/i
(我认为这是存储图像的地方)?从网页目录下载文件
在此先感谢!
我想从http://random.cat/
得到随机的图片,所以我想用Directory.GetFiles
或类似的东西来索引它们,但这不起作用。那么得到Directory.GetFiles
的功能的最好方法是什么,但是对于http://random.cat/i
(我认为这是存储图像的地方)?从网页目录下载文件
在此先感谢!
您没有访问到图像数据库,但它们提供了一次检索一个图像的api。
创建一个基本模型:
public class RandomImage
{
public string file { get; set; }
}
然后你可以使用Web客户端来做到这一点:
public string RandomImage()
{
string result = null;
var apiurl = "http://random.cat";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(apiurl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage ResponseMessage = client.GetAsync(apiurl + "/meow").Result; // The .Result part will make this method not async
if (ResponseMessage.IsSuccessStatusCode)
{
var ResponseData = ResponseMessage.Content.ReadAsStringAsync().Result;
var MyRandomImage = JsonConvert.DeserializeObject<RandomImage>(ResponseData);
result = MyRandomImage.file; // This is the url for the file
}
// Return
return result;
}
呼叫从自己的方法的功能:
var MyImage = RandomImage();
Directory.GetFiles()
被设计成在文件系统上使用,而不是在网址上使用。
This link应该足以让你开始。由于您不知道图片的实际网址,因此您需要parse the page to find it,然后再提出下载请求。
请注意,如果您在特定时间内下载过多图片,他们可能会阻止您。
编辑:我刚才注意到他们有一个API,这使得一切都变得更简单。但它被标记为暂时的,所以你要做的就是这样。
如前所述,您必须使用HttpClient。我不知道列出所有文件的方法,但这也需要在托管该站点的Web服务器中设置。
非常感谢!那是,我的问题是! – LordOsslor