从 web 目录获取文件

Get files from web directory

我只想从 http://random.cat/ 中获取随机图像,所以我想使用 Directory.GetFiles 或类似的方法为它们编制索引,但这不起作用。那么,获得 Directory.GetFiles 功能的最佳方式是什么,但对于 http://random.cat/i(我认为这是存储图像的地方)?

提前致谢!

无权访问图像数据库,但他们提供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();

Directory.GetFiles() 设计用于文件系统,而不是网址。

This link ought to be enough to get you started. Since you don't know the actual URL of the picture, you would have to parse the page to find it 然后进一步请求下载它。

请注意,如果您在特定时间内下载过多图片,他们可能会阻止您。

编辑:我刚才注意到他们有一个 API,这让一切都变得更简单了。但它被标记为临时的,所以你可以随意使用它。

如前所述,您必须使用 HttpClient。我不知道列出所有文件的任何方法,但这也需要在托管站点的 Web 服务器中设置。