En utilisant REST avec Basic Auth et une charge utile FormUrlEncoded avec plusieurs entrées 'text' (essentiellement, un document Word représenté comme 8 phrases), quand j'appelle l'API, il retourne les traductions, mais il renvoie deux fois la première phrase, ce qui désynchronise le tableau traduit par rapport à la requête initiale. Y a-t-il quelque chose de fondamental qui me manque? Je suis bloqué sur .net40 aussi.Language Translator RESTful API retournant la première phrase deux fois
var payload = new FormUrlEncodedContent(watsonValues);
var translationResponse = _watsonClient.PostAsync($"{_watsonBase}/v2/translate", payload).Result;
if (translationResponse.IsSuccessStatusCode)
{
var responsePayload = translationResponse.Content.ReadAsStringAsync().Result;
var watsonTranslations = JsonConvert.DeserializeObject<WatsonMtResponse>(responsePayload);
foreach (var translation in watsonTranslations.Translations)
{
translatedList.Add(translation.Translation);
}
}
else
{
translationResponse.EnsureSuccessStatusCode();
}
Pourriez-vous ajouter un exemple des données de requête et de réponse? Aussi, pouvez-vous élaborer sur le problème .net40? –
@Chris J'ai changé la requête pour utiliser une charge utile JSON et cela a fonctionné comme prévu. Avant cela, j'utilisais une requête d'en-tête Form Encoded avec plusieurs éléments de texte. Le problème .Net 4.0 est lié à l'utilisation des bibliothèques Watson/SDK que je ne peux pas déployer sur des systèmes existants en raison de divers conflits avec l'ancienne version de .NET que nous utilisons. – StephenH
Cool. Si le passage à Json fonctionne pour vous, vous pouvez l'ajouter comme votre propre réponse et l'accepter. –