private NaturalLanguageResult Request(string text, string url, NaturalLanguageRequestFeatures features = null) { var document = new NaturalLanguageRequestDocument(text); var request = url == "classifyText" ? new NaturalLanguageRequest(document) : new NaturalLanguageRequestWithEncodingType(document, features); var jsonRequest = JsonConvert.SerializeObject(request, JsonSettings); var requestContent = new StringContent(jsonRequest, Encoding.UTF8, "application/json"); if (!string.IsNullOrWhiteSpace(_apiKey)) { _httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {_apiKey}"); } var requestUrl = UseProxyIfPossible(BaseUrl + url); var result = _httpClient.PostAsync(requestUrl, requestContent).Result.Content.ReadAsStringAsync().Result; return(JsonConvert.DeserializeObject <NaturalLanguageResult>(result)); }
public NaturalLanguageRequestWithEncodingType(NaturalLanguageRequestDocument document, NaturalLanguageRequestFeatures features) : base(document) { Features = features; }
/// <summary> /// A convenience method that provides all the features that analyzeSentiment, analyzeEntities, /// and analyzeSyntax provide in one call. /// </summary> /// <param name="text"></param> /// <param name="features"></param> /// <returns></returns> public NaturalLanguageResult AnnotateText(string text, NaturalLanguageRequestFeatures features) => Request(text, "annotateText", features);