public async Task<ResultDto<BreakIntoWordsApiFeeds>> BreakIntoWordsApiRequestAsync(
BreakIntoWordsParameters breakIntoWordsParameters)
{
var resultDto = new ResultDto<BreakIntoWordsApiFeeds>();
try
{
var client = new HttpClient();
//request header
client.DefaultRequestHeaders.Add(Constants.SubscriptionTitle, breakIntoWordsParameters.subscriptionKey);
var queryString =
$"model={breakIntoWordsParameters.model}&text={breakIntoWordsParameters.text}&order={breakIntoWordsParameters.order}&maxNumOfCandidatesReturned={breakIntoWordsParameters.maxNumOfCandidatesReturned}";
var body = string.Empty;
var uri = Constants.BreakIntoWordsApi + queryString;
HttpResponseMessage response;
//request body
var byteData = Encoding.UTF8.GetBytes(body);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue(breakIntoWordsParameters.contentType);
response = await client.PostAsync(uri, content);
}
var jsonResult = await response.Content.ReadAsStringAsync();
var feed = JsonConvert.DeserializeObject<BreakIntoWordsApiFeeds>(jsonResult);
resultDto.Result = feed;
resultDto.ErrorMessage = feed.error?.message;
resultDto.StatusCode = feed.error?.code;
resultDto.Success = feed.error == null;
}
catch (Exception ex)
{
resultDto.ErrorMessage = ex.Message;
resultDto.Exception = ex;
Debug.WriteLine($"{ex}");
}
return resultDto;
}