3

每当我调用 Bing Translation API [HTTP] 来翻译一些文本时,第一次它工作正常,第二次它给我“错误请求”[状态代码 400] 错误。如果我等待 10 分钟左右然后再试一次,那么第一个请求是成功的,但第二个请求是相同的。我有一个使用必应翻译 API 的免费帐户 [200 万字符翻译],调用此 API 是否还有其他限制?

谢谢,马杜

答: 您好,我错过了订阅微软翻译数据集订阅。一旦我得到相同的结果,那么事情就解决了。IE; 一旦我注册了https://datamarket.azure.com/dataset/bing/microsofttranslator然后一切正常。

我正确生成了 access_token,所以这不是问题。谢谢,马杜

4

2 回答 2

1

我错过了订阅微软翻译数据集订阅。一旦我得到相同的结果,那么事情就解决了。IE; 一旦我注册了https://datamarket.azure.com/dataset/bing/microsofttranslator然后一切正常。

我很感谢,马杜

于 2012-12-24T11:02:47.853 回答
1

作为其他有问题的人的说明,我发现该服务只允许在使用免费订阅时使用一次令牌。您必须付费订阅才能使用每个令牌多次调用翻译服务。当然,这种限制是无证的。

我不知道你是否可以简单地继续获得新的令牌——我怀疑不能。

无论订阅如何,令牌都会每 10 分钟过期一次,因此请确保您跟踪收到令牌的时间并在需要时获取一个新令牌,例如(不是线程安全的):

private string _headerValue;
private DateTime _headerValueCreated = DateTime.MinValue;
public string headerValue {
    get {
        if(_headerValueCreated < DateTime.Now.AddMinutes(-9)) {
            var admAuth = new AdmAuthentication("myclientid", "mysecret");
            _headerValue = "Bearer " + admAuth.GetAccessToken();
            _headerValueCreated = DateTime.Now;
        }
        return _headerValue;
    }
}
于 2014-05-19T16:20:45.043 回答