public async Task <string> GetRaw <TParameter, TResult>(RuneScapeApi <TParameter, TResult> api, TParameter parameter) { string uri = api.GetUri(parameter); string responseText; using (var response = await httpClient.GetAsync(uri)) { if (response.StatusCode == HttpStatusCode.NotFound) { responseText = null; } else { response.EnsureSuccessStatusCode(); if (api.OverrideResponseEncoding != null) { using (var stream = await response.Content.ReadAsStreamAsync()) using (var reader = new StreamReader(stream, api.OverrideResponseEncoding)) responseText = await reader.ReadToEndAsync(); } else { responseText = await response.Content.ReadAsStringAsync(); } } } return(responseText); }
public async Task <TResult> Get <TParameter, TResult>(RuneScapeApi <TParameter, TResult> api, TParameter parameter) { string responseText = await GetRaw(api, parameter); return(api.ParseResult(parameter, responseText)); }