当名称包含空格时,从dropbox下载文件失败



我正在尝试使用RESTful API从dropbox下载一个文件。当我遇到一个文件中有一个空格"My Photo.png"时,程序会在var request = (HttpWebRequest) WebRequest.Create(requestUri);上停止。它会返回403错误。如果我删除空格并再次尝试下载文件,效果会很好。我检查了格式化的uri,它被返回为"My+Photo.png",应该是这样吗?我做错了什么?

    var uri = new Uri(new Uri(DropboxRestApi.ApiContentServer),
        String.Format("files?root={0}&path={1}",
        root, UpperCaseUrlEncode(path)));

我的方法:

    private static string UpperCaseUrlEncode(string s)
    {
        char[] temp = HttpUtility.UrlEncode(s).ToCharArray();
        for (int i = 0; i < temp.Length - 2; i++)
        {
            if (temp[i] == '%')
            {
                temp[i + 1] = char.ToUpper(temp[i + 1]);
                temp[i + 2] = char.ToUpper(temp[i + 2]);
            }
        }
        return new string(temp);
    }

你能做普通的URLEncode并做一个字符串吗。替换临时字符串,它将非常适合文件名中有空格的文件

temp = temp.Replace("+", "%20"); 

最新更新