我正在尝试编写一个基于Qt的REST客户端,它将使用我的Subscription-Key与Microsoft Cognitive Token Service进行通信,并获取一个身份验证令牌,稍后我可以使用它来建立与Microsoft Cognitive Services API的连接。
身份验证令牌API文档:http://docs.microsofttranslator.com/oauth-token.html
以下是我的代码:
QByteArray jsonString = "{\"Ocp-Apim-Subscription-Key\":\"***********************"}";
QUrl serviceURL("https://api.cognitive.microsoft.com/sts/v1.0/issueToken");
QNetworkRequest request(serviceURL);
request.setRawHeader("Content-Type", "application/json")
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkReply *reply = manager->post(request, jsonString);
qDebug() << reply->errorString();
错误:
unknown error
上面的代码总是返回未知错误。我希望有人指出我正确的方向来解决这个问题。
谢谢。
请参阅http://docs.microsofttranslator.com上的Microsoft Translator API文档
您还可以选择绕过获取令牌并在呼叫中使用API密钥。在您对api.microsofttranslator.com或dev.microsofttranslator.com的http请求中,将http标头“Ocp-Apim-Subscription-Key”设置为您的订阅密钥。
不要拨打令牌服务(https://api.cognitive.microsoft.com/sts/v1.0/issueToken)
不要使用AppID参数或“授权”http标头。
上述文件已相应更新。
C#示例在这里:https://github.com/MicrosoftTranslator/TranslateWithAzureSubscriptionKeyAuthentication