c# - 无法检测内容输入的语言,错误 401
问题描述
无法检测内容输入的语言。
我已经仔细检查了 API 密钥,它是正确的。当我尝试检测语言时,出现错误 401。
// ***** DETECT LANGUAGE OF TEXT TO BE TRANSLATED
private string DetectLanguage(string text)
{
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(text);
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 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)
return languageInfo["iso6391Name"];
else
return "";
}
解决方案
推荐阅读
- java - Junit5 无法在测试中执行 shell 命令
- python - 如何将 csv 文件转换为 Python 字典并根据特定条件对值进行求和/运算?
- grails - 带有 Spring Security 的 Grails 4 审计日志不记录“演员”
- linux - 有没有办法在 Win32/Posix 应用程序中延迟空闲功能?
- android - Android Kotlin - 使用 SharedPreferences 保存和检索自定义模型的 ArrayList
- tensorflow - 在 Web 应用程序上部署 Mask-RCNN
- node.js - MongoDB 使用 $search 获取总计数聚合管道
- javascript - 从对象数组打印数据时出现问题,它显示不正确
- reactjs - 如何在 Reactjs 中将文章标题添加到 URL 中?
- c++ - 为什么没有调用我课堂上的移动作业?