2017-04-02 12 views
-2

ランダムイメージをhttp://random.cat/から取得したかったので、Directory.GetFilesなどを使用してそれらのインデックスを作成したかったのですが、これは機能しません。だから、Directory.GetFilesの機能を得るにはどうすればよいでしょうか?http://random.cat/i(これは画像が保存されている場所です)と思いますか?ウェブディレクトリからファイルを取得する

ありがとうございます!

答えて

0

画像データベースにはのアクセス権がありませんが、一度に1つの画像を取得するAPIを提供しています。

基本的なモデルを作成します。そして、あなたがそれを行うためにWebクライアントを使用することができます

public class RandomImage 
{ 
    public string file { get; set; } 
} 

を:

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(); 
+0

ありがとうございます!それは、私の問題は何だった! – LordOsslor

0

Directory.GetFiles()がするように設計されていますWebアドレスではなくファイルシステム上で使用されます。

This linkあなたが始めるには十分であるはずです。画像の実際のURLがわからないので、parse the page to find itにしてからさらにダウンロードを依頼する必要があります。

特定の時間にあまりにも多くの画像をダウンロードした場合、画像がブロックされる可能性があることに注意してください。

編集:APIを使用していることに気付きました。これにより、すべてが少しシンプルになりました。しかし、それは一時的なものとしてマークされているので、それはあなたがするものです。

0

前述のとおり、HttpClientを使用する必要があります。私はすべてのファイルをリストするための方法を知らないが、これはサイトをホストしているWebサーバーにも設定する必要がある。

関連する問題