2009-12-30 5 views
0

우박! 게시자가 아닌 Google 사이트의 페이지에서 이미지를 가져 오려고합니다. 이 목적으로 WebClient를 사용하고 있습니다.Google 사이트 데이터 가져 오기

var uri = 
    new Uri("http://sites.google.com/a/MYDOMAIN.COM/SITENAME/" + 
      "_/rsrc/1234567890/MYIMAGE.jpg"); 
string fileName = "d:\\!temp\\MYIMAGE.jpg"; 
if (File.Exists(fileName)) 
    File.Delete(fileName); 
using (var webClient = new WebClient()) 
{ 
    var networkCredential = new NetworkCredential("USERNAME", "PASSWORD"); 
    var credentialCache = new CredentialCache 
    { 
     {new Uri("sites.google.com"), "Basic", networkCredential}, 
     {new Uri("www.google.com"), "Basic", networkCredential} 
    }; 
    webClient.Credentials = credentialCache; 
    webClient.DownloadFile(uri, fileName); 
} 

이미지를 다운로드하지 않지만 로그인 양식이있는 html 파일이 다운로드됩니다. 브라우저에서이 링크를 열면 로그인 양식이 표시되고 사용자 이름과 암호를 입력 한 다음 이미지를 볼 수 있습니다.

WebClient 또는 HttpWebRequest를 사용하여 파일을 다운로드하려면 자격 증명을 어떻게 사용해야합니까?

답변

0

CookieContainer을 사용하여 요청에 첨부하십시오. 그런 다음 먼저 자격 증명을 사용하여 로그인 양식에 HTTP POST를 수행 한 다음 HTTP GET을 수행하여 파일을 다운로드하십시오.