2017-04-02 2 views
-2

http://random.cat/에서 무작위 이미지를 얻고 싶었으므로 Directory.GetFiles 또는 그와 비슷한 것을 사용하여 색인을 생성하려고했지만이 방법은 효과가 없습니다. 그렇다면 Directory.GetFiles의 기능을 얻는 가장 좋은 방법은 무엇입니까? (이미지 저장 위치는 어디입니까?) http://random.cat/i?웹 디렉토리에서 파일 가져 오기

미리 감사드립니다.

답변

0

은 이미지 데이터베이스에 액세스 권한이 없지만 한 번에 하나의 이미지를 검색하기 위해 API를 제공합니다.

기본 모델 만들기 :

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()이로 설계 웹 주소가 아닌 파일 시스템에서 사용됩니다.

This link 시작하기에 충분해야합니다. 그림의 실제 URL을 모를 경우 parse the page to find it을 가져온 다음 다운로드를 요청하십시오.

특정 시간에 너무 많은 이미지를 다운로드하면 사용자를 차단할 수 있습니다.

편집 : 이제 API가 생겨서 조금 더 간단 해졌습니다. 그러나 그것은 일시적인 것으로 표시되어 있으므로 그렇게 할 것입니다.

0

앞서 언급 한 것처럼 HttpClient를 사용해야합니다. 모든 파일을 나열하는 방법은 모르지만 사이트를 호스팅하는 웹 서버에서도 설정해야합니다.

관련 문제