我想从http://random.cat/
获取随机图像,所以我想使用Directory.GetFiles
或类似的东西对它们进行索引,但这不起作用。那么获得Directory.GetFiles
的功能的最佳方法是什么,但是对于http://random.cat/i
(我认为这是存储图像的地方)?
提前致谢!
答案 0 :(得分:0)
您无法访问到图片数据库,但他们提供了一次api来检索一张图片。
创建基本模型:
public class RandomImage
{
public string file { get; set; }
}
然后你可以使用WebClient来做到这一点:
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();
答案 1 :(得分:0)
Directory.GetFiles()
旨在用于文件系统,而不是用于网址。
This link应该足以让你入门。由于您不知道图片的实际网址,因此您必须parse the page to find it,然后再提出下载请求。
请注意,如果您在特定时间内下载了太多图片,他们可能会阻止您。
编辑:我刚才注意到他们有一个API,这使得一切都变得简单。但它被标记为临时的,所以你要做的就是。答案 2 :(得分:0)
如前所述,你必须使用HttpClient。我不知道列出所有文件的任何方法,但这也需要在托管该网站的Web服务器中进行设置。