新しい API を使用してフォルダーを作成しようとしています。
フォルダ名にキリル文字が含まれていると、HTTP 400 Bad Request を受け取ります。ただし、ラテン文字では問題なく機能します。
それは既知の問題ですか?
私はここで正しい答えを見つけました: HTTP POST リクエストの文字エンコーディングの検出
HTTP POST のデフォルトのエンコーディングは ISO-8859-1 です。
必要なのは、リクエストのエンコーディングを手動で設定することだけです。ちなみに、ここに作業コードがあります:
public static Task<string> Post(string url, string data, string authToken) {
var client = new WebClient { Encoding = Encoding.UTF8 };
client.Headers.Add("Content-Type:application/x-www-form-urlencoded");
client.Headers.Add(AuthHeader(authToken));
return client.UploadStringTaskAsync(new Uri(url), "POST", data);
}
通常、Box API呼び出しに国際文字が含まれる複雑な問題は、リクエストのエンコーディングをわずかに調整するだけで済みます。ターゲットフォルダ名をurlencodeでエンコードするだけでいいのではないかと思います。
それでもうまくいかない場合は、サンプルリクエストまたはコードスニペットを送信すると、さらにサポートできる可能性があります。その場合は、APIキーと認証トークンを自分で保持してください。