2016-07-21 18 views
0

Arbeiten mit Azure Machine Learning - Text Analytics REST-API, finden Sie hier. Erfordert das Senden einer Payload an den Server über POST. Ich versuche, um ähnliche Ergebnisse zu erhalten, wie ich mit IBM watson tunAzure Machine Learning - Textanalyse C# Ungültiger Anforderungshauptteil, auch nach Überprüfung des JSON-Hauptteils

Hier ist, was ich in der Konsole app versucht, hier ist Kern-Code:

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); 

Nachrichtentext von Serialisierung " „Dokumente ist:

{ 
"documents": [ 
    { 
    "language": "en", 
    "id": "4", 
    "text": "Lateral internal sphincterotomy and fissurectomy" 
    }, 
    { 
    "language": "en", 
    "id": "5", 
    "text": "Fissurectomy and Botox injection" 
    } 
]} 

I Bad Request Fehler erhalten. Ich habe bestätigt, dass meine Anfrage gesendet wurde und die Authentifizierung bestanden hat (zuvor war sie fehlgeschlagen). Ich habe auch viele Variationen ausprobiert.

Ich bin in der Lage meiner Anfrage Körper auszuprobieren und es funktioniert einwandfrei, wenn der Text von Debug-Variable Kopieren direkt auf den Körper von Azure bereitgestellt:

https://westus.dev.cognitive.microsoft.com/docs/services/TextAnalytics.V2.0/operations/56f30ceeeda5650db055a3c6/console

Wenn ich den Test unter Verwendung der oben ich die Antwort bekommen erwartet, Status 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": [] 
} 

Antwort

1

ich arbeitete mit JQuery und REST API für die Sentiment-Analyse. Ich habe denselben Fehler erhalten, den Sie erhalten haben. Ich schaffte es, es zu arbeiten, indem ich die JSON-serialized version der Eingabe als der Antragkörper zur Verfügung stellte.

Hier ist die Arbeits Code-

$(function() { 
var params ={ 
"documents": [ 
{ 
"language": "en", 
"id": "1", 
"text": "this is AWESOME!" 
} 
] 
}; 


$.ajax({ 
url: "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment?" + $.param(params);, 
beforeSend: function(xhrObj){ 
// Request headers 
xhrObj.setRequestHeader("Content-Type","application/json"); 
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","<your subscription key here>"); 
xhrObj.setRequestHeader("Accept","application/json"); 
}, 
type: "POST", 
// Request body 
data: JSON.stringify(params) 
}) 
.done(function(data) { 
     alert("Sentiment score is " + data.documents[0].score); 

    }) 
    .fail(function() { 
     alert("error"); 
    }); 
}); 
+0

Vielen Dank Vikash für die vorgeschlagenen Formatierungsänderungen :) –

0

@Makk, es sieht aus wie Sie C# -Code verwenden. In der Textanalysedokumentation gibt es einen Abschnitt quick-start, in dem C# ausgeführt wird, der für Sie arbeiten sollte.