【问题标题】:Download image from google drive从谷歌驱动器下载图像
【发布时间】:2016-09-26 05:29:38
【问题描述】:

我尝试允许用户从用户的谷歌驱动器中选择图像。 我关注这个文档:https://developers.google.com/picker/docs/。 当我从谷歌('/drive/v2/files/' + FileId)接收图像 URL 时,我尝试在我的 .NET 代码中下载平铺图像:

var WebRequest = (HttpWebRequest)System.Net.WebRequest.Create(url);
WebRequest.AllowWriteStreamBuffering = true;
WebRequest.Timeout = 30000;
WebRequest.KeepAlive = false;
WebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
WebRequest.AllowAutoRedirect = true;
WebRequest.Headers.Add("Authorization", "Bearer " + token);                 

byte[] Arr;
using (var WebResponse = WebRequest.GetResponse())
{
     using (var Stream = WebResponse.GetResponseStream())
     {
          Arr = Stream.StreamToByteArray();
     }

     WebResponse.Close();
}
return Arr;

但我得到的只是一个空的(白色)网页。使用我从谷歌获得的网址,我可以在浏览器中查看图像,但我无法在我的代码中下载它。

如何下​​载图片?

【问题讨论】:

    标签: c# asp.net google-api


    【解决方案1】:

    改用WebClient:

    client = new WebClient();
    client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
    client.Headers.Add("Authorization", "Bearer " + token); 
    client.AllowWriteStreamBuffering = true;
    return client.DownloadData(url); /// DownloadData returns a byte array
    

    【讨论】:

    • 同样的问题,当我尝试从谷歌驱动器下载图像时,我得到一个空白页面。我可以从示例 facebook 下载“公共”图像,但不能从谷歌驱动器下载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2021-04-05
    • 2018-07-21
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多