0

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);
    }
4

1 に答える 1

1

通常の URLEncode を実行して文字列を実行できますか。一時文字列を置換すると、ファイル名にスペースが含まれるファイルに最適です。

temp = temp.Replace("+", "%20"); 
于 2012-08-22T20:01:33.840 に答える