Ich habe das folgende Java-Programm, das eine JSON-Zeichenfolge druckt.verwirrt Senden von JSON als Parameter
System.out.println(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectsToSerialise));
Ich habe versucht, die Art des objectsToSerialise
mit der unten stehenden Zeile Code zu finden.
System.out.println(objectsToSerialise.getClass().getTypeName());
diesem Retour java.util.ArrayList
die Ausgabe, die ich als unten.
[ {
"EntityLabels" : [ {
"StartToken" : 8,
"EntityType" : "Personname",
"EndToken" : 16
}, {
"StartToken" : 24,
"EntityType" : "Amount::Spent",
"EndToken" : 31
} ],
"ExampleText" : "What is Frede's limit? ",
"SelectedIntentName" : "GiftLimit"
} ]
Und ich versuche, das gleiche auf meine API zu posten. Und der Code ist wie folgt.
Und luisUrl ="https://westus.api.cognitive.microsoft.com"
HttpPost httpPost = new HttpPost(luisUrl + "/luis/v1.0/prog/apps/" + appId + "/examples?");
httpPost.setHeader("Ocp-Apim-Subscription-Key", subsriptionId);
StringEntity params = new StringEntity(objectsToSerialise.toString());
httpPost.setHeader("Content-Type", "application/json");
httpPost.setEntity(params);
HttpResponse response = httpclient.execute(httpPost);
/* Debug Info */
System.out.println("---------------Start2----------------");
HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity, "UTF-8");
System.out.println(responseString);
System.out.println("---------------End----------------");
/*End Debug Info*/
if (response.getStatusLine().getStatusCode() == 201) {
success = true;
System.out.println("Success");
} else {
System.out.println("Block");
success = false;
}
Und dies immer else
Inhalt druckt. d.h. Block
. Ich dachte, das könnte ein Problem mit meiner Berufung sein und versuchte dasselbe in Postman
. mit den folgenden Details.
URL:https://westus.api.cognitive.microsoft.com/luis/v1.0/prog/apps/ {AppId}/Beispiele?
Methode: Post
Headers:
Content-Type:application/json
Ocp-Apim-Subscription-Key:{mySubscriptionKey}
Körper: ** Roh-> JSON ** Inhalt:
[ {
"EntityLabels" : [ {
"StartToken" : 8,
"EntityType" : "Personname",
"EndToken" : 16
}, {
"StartToken" : 24,
"EntityType" : "Amount::Spent",
"EndToken" : 31
} ],
"ExampleText" : "What is Frede's limit? ",
"SelectedIntentName" : "GiftLimit"
} ]
Zu meiner Überraschung wenn ich dies poste, gibt es mirzurück, wo mir mein Java-Code 400
zurückgibt.
Dies ist sehr verwirrend. Bitte lassen Sie mich wissen, wo ich falsch liege und wie ich das beheben kann.
Dank
Dank Mann, arbeitete diese. Danke noch einmal! – user3872094