我正在尝试创建一个翻译机器人,但是当我发送消息时,机器人一直告诉我机器人代码有问题。目前,我只是在尝试检测用户语言并将其打印在聊天中。这是我写的代码:
async Task DetectLanguage(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
string uri = TEXT_ANALYTICS_API_ENDPOINT + "languages?numberOfLanguagesToDetect=1";
// create request to Text Analytics API
HttpWebRequest detectLanguageWebRequest = (HttpWebRequest)WebRequest.Create(uri);
detectLanguageWebRequest.Headers.Add("Ocp-Apim-Subscription-Key", TEXT_ANALYTICS_API_SUBSCRIPTION_KEY);
detectLanguageWebRequest.Method = "POST";
// create and send body of request
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string jsonText = serializer.Serialize(activity);
string body = "{ \"documents\": [ { \"id\": \"0\", \"text\": " + jsonText + "} ] }";
byte[] data = Encoding.UTF8.GetBytes(body);
detectLanguageWebRequest.ContentLength = data.Length;
using (var requestStream = detectLanguageWebRequest.GetRequestStream())
requestStream.Write(data, 0, data.Length);
HttpWebResponse response = (HttpWebResponse)detectLanguageWebRequest.GetResponse();
// read and and parse JSON response
var responseStream = response.GetResponseStream();
var jsonString = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")).ReadToEnd();
dynamic jsonResponse = serializer.DeserializeObject(jsonString);
// fish out the detected language code
var languageInfo = jsonResponse["documents"][0]["detectedLanguages"][0];
if (languageInfo["score"] > (decimal)0.5)
await context.PostAsync(languageInfo["iso6391Name"]);
else
await context.PostAsync("No language detected");
context.Wait(DetectLanguage);
}
当我尝试调试时,导致问题的行是这一行:
HttpWebResponse response = (HttpWebResponse)detectLanguageWebRequest.GetResponse();
这是我在控制台中遇到的错误:
iisexpress.exe Warning: 0 : Service url localhost:63556 is not trusted and JwtToken cannot be sent to it.
抛出异常:mscorlib.dll 中的“System.Net.WebException”
有人见过这个问题吗?
感谢转发的帮助:)