Language Translator RESTful API 两次返回第一个句子
Language Translator RESTful API returning first sentence twice
将 REST 与 Basic Auth 和具有多个 'text' 条目的 FormUrlEncoded 负载结合使用(本质上,一个 word 文档表示为 8 个句子),当我调用 API 它 returns翻译,但它 returns 第一句话两次使翻译后的数组与初始请求不同步。我缺少一些基本的东西吗?我也卡在 .net40 上了。
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();
}
我通过提出基于 Json 的请求而不是我之前提出的 FormUrlEncoded 请求来解决这个问题。代码基本上是...
var translationResponse = _watsonClient.PostAsync($"{_watsonBase}/v2/translate",
new StringContent(JsonConvert.SerializeObject(mtRequest),
Encoding.UTF8,
"application/json"))
.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();
}
Json 对象看起来像这样...
class WatsonMtRequest
{
[JsonProperty("model_id")]
public string ModelId { get; set; }
[JsonProperty("text")]
public List<string> Text { get; set; }
}
将 REST 与 Basic Auth 和具有多个 'text' 条目的 FormUrlEncoded 负载结合使用(本质上,一个 word 文档表示为 8 个句子),当我调用 API 它 returns翻译,但它 returns 第一句话两次使翻译后的数组与初始请求不同步。我缺少一些基本的东西吗?我也卡在 .net40 上了。
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();
}
我通过提出基于 Json 的请求而不是我之前提出的 FormUrlEncoded 请求来解决这个问题。代码基本上是...
var translationResponse = _watsonClient.PostAsync($"{_watsonBase}/v2/translate",
new StringContent(JsonConvert.SerializeObject(mtRequest),
Encoding.UTF8,
"application/json"))
.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();
}
Json 对象看起来像这样...
class WatsonMtRequest
{
[JsonProperty("model_id")]
public string ModelId { get; set; }
[JsonProperty("text")]
public List<string> Text { get; set; }
}