public VisualRecognitionClassifyResponse ClassifyImageFile(VisualRecognitionClassifyRequestFile model) { var client = new RestClient(Configuration.ApiUrl); var requestUrl = new StringBuilder(); requestUrl.Append($"/classify?api_key={Configuration.ApiKey}&version={Configuration.Version}"); if (model.Threshold.HasValue) { requestUrl.Append($"&threshold={model.Threshold}"); } if (model.Classifiers != null && model.Classifiers.Any()) { requestUrl.Append($"&classifier_ids={string.Join(",", model.Classifiers)}"); } if (model.Owners != null && model.Owners.Any()) { requestUrl.Append($"&owners={string.Join(",", model.Owners)}"); } var request = new RestRequest(requestUrl.ToString()) { Method = Method.POST }; request.AddHeader("Content-Type", "multipart/form-data"); request.AddFile("image_file", model.File.Stream.ReadFully(), model.File.Name); // Execute the API Call var response = client.ExecuteSync(request); // Handle the Response return(HandleRecognitionResponse <VisualRecognitionClassifyResponse>(response)); }
public JsonResult ClassifyFile([FromForm] string apiKey, string[] classifiers, string[] owners, double?threshold, IFormFile file) { try { var client = new VisualRecognitionClient(apiKey); using (var stream = file.OpenReadStream()) { var request = new VisualRecognitionClassifyRequestFile(stream, file.FileName) { Classifiers = classifiers, Owners = owners, Threshold = threshold }; var response = client.ClassifyImageFile(request); return(Json(response)); } } catch (Exception exc) { return(JsonError(exc)); } }