用于获取Microsoft Cognitive Services Translator API

时间:2017-12-28 08:08:53

标签: c++ qt rest api post

我正在尝试编写一个基于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

以上代码始终返回未知错误。我希望有人指出我正确的方向来解决这个问题。

谢谢。

2 个答案:

答案 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