每当我调用Bing Translation API [HTTP]来翻译某些文本时,第一次它工作正常,第二次它会给我'错误请求'[状态代码400]错误。如果我等待10分钟左右,然后再试一次,那么第一个请求成功,但第二个请求同样的故事。我有Bing Translation API的免费帐户[200万字符翻译],是否有任何其他限制调用此API?
谢谢,Madhu
答案: 嗨,我错过订阅Microsoft Translator DATA set订阅。一旦我得到相同,那么事情已经解决了。即;一旦我注册了https://datamarket.azure.com/dataset/bing/microsofttranslator,那么事情就会奏效。
我正确地生成了access_token,所以这不是问题。 谢谢,madhu
答案 0 :(得分:1)
我错过订阅Microsoft Translator DATA set订阅。一旦我得到相同,那么事情已经解决了。即;一旦我注册了https://datamarket.azure.com/dataset/bing/microsofttranslator,那么事情就会奏效。
我是 谢谢,madhu答案 1 :(得分:1)
作为对其他任何有问题的人的说明,我发现该服务仅允许在使用免费订阅时使用一次使用令牌。您必须拥有付费订阅才能使用每个令牌多次调用Translate服务。当然,这种限制没有记载。
我不知道你是否可以继续获得新的代币 - 我怀疑不是。
无论订阅如何,令牌都会每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;
}
}