我正在尝试使用新 API 创建文件夹。
如果文件夹名称包含西里尔字母,我会收到 HTTP 400 Bad Request。但是它适用于拉丁字母。
是已知问题吗?
我在这里找到了正确的答案:Detecting the character encoding of an HTTP POST request
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 密钥和身份验证令牌留给自己。