我正在尝试编写一个基于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
以上代码始终返回未知错误。我希望有人指出我正确的方向来解决这个问题。
谢谢。
答案 0 :(得分:1)
请仔细检查jsonString中所有双引号之前反斜杠的存在。
答案 1 :(得分:0)
请参阅Microsoft Translator API文档 http://docs.microsofttranslator.com
您还可以选择绕过获取令牌并在通话中使用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