Работа с машинным обучением Azure — REST API текстовой аналитики, расположенным здесь. Требуется отправка полезной нагрузки на сервер через POST. Я пытаюсь получить такие же результаты, как и с IBM watson.
Вот что я пробовал в консольном приложении, вот основной код:
static IRestResponse GetResp(string url, string key, string jsonText) {
IRestClient client = new RestClient(url);
IRestRequest request = new RestRequest() { RequestFormat = DataFormat.Json };
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Ocp-Apim-Subscription-Key", key);
IRestResponse response = client.ExecuteAsPost(request, "POST");
}
// Here the code that serializes the object to look precisely like body advertised calls it:
string json = JsonConvert.SerializeObject(documents);
IRestResponse resp = GetResponse("https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases", TaxonomyGlueKey, json);
тело сообщения от сериализации "документов":
{
"documents": [
{
"language": "en",
"id": "4",
"text": "Lateral internal sphincterotomy and fissurectomy"
},
{
"language": "en",
"id": "5",
"text": "Fissurectomy and Botox injection"
}
]}
Я получаю ошибки Bad Request. Я проверил, что мой запрос отправлен и проходит аутентификацию (до этого он не прошел). Я также пробовал много вариантов этого.
Я могу попробовать свое тело запроса, и оно работает правильно при копировании текста из переменной отладки непосредственно в тело, предоставленное Azure:
Если я проверю, используя вышеизложенное, я получу ожидаемый ответ, статус 200:
Transfer-Encoding: chunked
x-aml-ta-request-id: c4ea9fff-8068-42a3-99c4-68717acddcf5
X-Content-Type-Options: nosniff
apim-request-id: e5eb593b-96a3-4806-9143-1d83424569be
Date: Thu, 21 Jul 2016 14:14:44 GMT
Content-Type: application/json; charset=utf-8
{
"documents": [
{
"keyPhrases": [
"fissurectomy"
],
"id": "4"
},
{
"keyPhrases": [
"Botox injection"
],
"id": "5"
}
],
"errors": []
}