我正在尝试使用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);
}
答案 0 :(得分:1)
你能做普通的URLEncode并做一个字符串。在临时字符串上放置它。它适用于文件名中有空格的文件
temp = temp.Replace("+", "%20");