如何在C# HttpClient中无需API直接下载Google Drive等云盘文件
无API实现Dropbox/Google Drive/OneDrive文件直连下载(Xamarin Forms)
我在C# Xamarin Forms环境下,不借助官方云盘API实现三方云盘链接下载时踩了不少坑,下面是整理后的解决方案:
Dropbox 下载解决方案
- Xamarin Forms专属bug修复:在Visual Studio Mac环境中,Dropbox链接会触发两次重定向,第二次重定向的URL以
#结尾(属于无效URL字符),导致自动重定向失效。解决办法是自行处理重定向逻辑,对URL中的#做URL编码(转为%23)即可正常访问;非Xamarin Forms环境可忽略此问题,Dropbox链接在cUrl或Fiddler中可正常工作。 - 获取直连下载链接:需要对原始分享URL进行格式转换,跳过带有“下载”按钮的中间HTML页面,直接拿到可下载的资源地址。
OneDrive 下载解决方案
- 必须先对原始分享URL进行格式转换,转换完成后需验证链接有效性,才能获取到跳过中间页面的直连下载地址。
Google Drive 下载解决方案
- 无API直连下载存在约25MB的文件大小限制,超过该大小的文件无法通过此方式下载;同样需要转换原始分享URL来获取直连下载地址。
注意:本文不处理基于Sharepoint的链接,暂不确定无API情况下是否可行。
内容的提问来源于stack exchange,提问作者BillF
相关产品推荐
相关产品推荐

