Я использую службу Microsoft Translator из своих приложений на C#. Однако, так как я создал свою подписку Azure, функция ниже возвращает: «Не удалось перевести». Насколько я понимаю, теперь мне нужно как-то по-другому использовать Microsoft Translator. Я активно искал Интернет, но не мог найти никаких рабочих примеров и/или подобных вопросов. Ниже я приведу мой код, который используется для работы, но теперь он не делает:Сервис Microsoft Translator на Azure (как заставить его работать?)
public static String TranslateToEnglish(String str)
{
return Translate(GetTokenWrapper(), str, "en");
}
public static String GetTokenWrapper()
{
AdmAccessToken admToken;
AdmAuthentication admAuth = new AdmAuthentication("..", "..");
admToken = admAuth.GetAccessToken();
return "Bearer " + admToken.access_token;
}
public static String Translate(HttpRequestMessageProperty httpRequestProperty,string authToken, string what, string to)
{
// Add TranslatorService as a service reference, Address:http://api.microsofttranslator.com/V2/Soap.svc
LanguageServiceClient client = new LanguageServiceClient();
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Method = "POST";
httpRequestProperty.Headers.Add("Authorization", authToken);
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
string sourceText = what;
string translationResult;
try
{
translationResult = client.Translate("", sourceText, "", to, "text/plain", "general", "");
}
catch(Exception ex) { return ex.ToString(); }
return translationResult;
}