2013-04-18 187 views
1

自10月份以來,我一直在使用Google Drive SDK集成。自那時以來,它一直運行良好,並且自從我開始工作以來,我沒有修改過項目中的代碼。今天,由於某些未知原因,每次向驅動器下載或上傳文件的請求都會返回錯誤:Google Drive(401)未授權錯誤

遠程服務器返回未經授權的錯誤(401)。

的代碼,我目前工作的部分是:在request.GetResponse()方法調用返回

public static Stream GetDownloadStream(string id) 
    { 
     File file = DriveService.Files.Get(id).Fetch(); 
     if (!String.IsNullOrEmpty(file.DownloadUrl)) 
     { 
      Stream stream; 
      var request = (HttpWebRequest) WebRequest.Create(
       new Uri(file.DownloadUrl)); 
      Auth.ApplyAuthenticationToRequest(request); 
      try 
      { 
       var response = (HttpWebResponse)request.GetResponse(); 
       if (response.StatusCode == HttpStatusCode.OK) 
       { 
        stream = response.GetResponseStream(); 
       } 
       else 
       { 
        throw new Exception(response.StatusDescription); 
       } 
       return stream; 
      } 
      catch(Exception e) 
      { 
       GetCredentials(); 
       return GetDownloadStream(id); 
      } 
     } 
     throw new Exception("File Cannot Be Downloaded."); 
    } 

錯誤。 DriveService正確加載文件,該文件具有正確形成的DownloadURL。有關DriveService的一切似乎都可以在代碼的其餘部分工作,它會正確地搜索和檢索文件信息,但出於某種原因,它不會下載或上傳。在我需要整合到我的代碼中的谷歌服務器端DownloadURL的格式有沒有改變?

+0

什麼是您的客戶端庫的版本? – 2013-04-18 14:29:44

+0

我相信潛在的問題已經解決,請確認這是你遇到的同樣的問題。謝謝 – 2013-04-18 15:37:47

+0

有一個已知的問題,類似的線程是在http://stackoverflow.com/questions/16072758/cant-retrieve-file-content-via-download-url – 2013-04-18 15:47:04

回答

0

有些時候downloadurl已過期,因此時間重新創建新請求並下載文件。 也是因爲刷新令牌和訪問令牌不正確。

1

您禁用了網絡安全嗎?看來谷歌驅動器正在檢查那個。

- 禁用網絡安全

如果是這樣,請啓用網絡安全。它爲我工作。

+0

是的我在Google Chome中也發現了Google Drive的一般用途。啓用「--disable-web-security」標誌後,它將不會加載與我的雲端硬盤帳戶關聯的「應用」。刪除該標誌允許Drive再次正常運行。 – 2015-03-31 07:34:56