// The inputFormFields
var inputFormFields = new List<(string, string)>()
{
(patientRecord.username, "username"),
(patientRecord.password, "pass"),
};
// The Method
public async Task<(string, bool)> GetWebLabResultAsync(string url, List<(string fieldName, string fieldValue)> inputFormFields, Encoding pageEncoding = null)
{
MultipartFormDataContent form = new MultipartFormDataContent();
foreach (var field in inputFormFields)
{
form.Add(new StringContent(field.fieldName), field.fieldValue);
}
Uri myUri = new Uri(url, UriKind.Absolute);
var pageResponse = await this.HttpClient.PostAsync(myUri, form);
var pageSize = pageResponse.Content.ReadAsStringAsync().Result.Length;
if (pageResponse.StatusCode != HttpStatusCode.OK || pageResponse.RequestMessage.Method == HttpMethod.Get)
{
return (string.Empty, false);
}
string htmlResult;
if (pageEncoding == null)
{
htmlResult = await pageResponse.Content.ReadAsStringAsync();
}
else
{
var buffer = await pageResponse.Content.ReadAsByteArrayAsync();
htmlResult = pageEncoding.GetString(buffer, 0, buffer.Length);
}
return (htmlResult, true);
}