C# 从web目录获取文件

C# 从web目录获取文件,c#,getfiles,C#,Getfiles,我只想从http://random.cat/,所以我想使用Directory.GetFiles或类似的方法对它们进行索引,但这不起作用。那么除了http://random.cat/i(我想这是存储图像的地方) 提前谢谢 您没有访问图像数据库的权限,但它们提供了一个每次检索一张图像的api 创建基本模型: public class RandomImage { public string file { get; set; } } 然后,您可以使用WebClient执行以下操作: publi

我只想从
http://random.cat/
,所以我想使用
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;
}
Directory.GetFiles()
设计用于文件系统,而不是web地址

应该足够让你开始了。由于您不知道图片的实际URL,因此必须先下载,然后再进一步请求下载

请注意,如果您在特定时间内下载了太多图像,它们可能会阻止您


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

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

非常感谢!那就是我的问题所在!
var MyImage = RandomImage();