RESTful API を使用してドロップボックスからファイルをダウンロードしようとしています。「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);
}