2009-12-30 41 views
0

Hail! 我想從NOT PUBLIC Google Site的頁面中獲取圖片。 我正在使用WebClient達到此目的。Google Site Data fetching

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以下載文件。