Следующий метод предназначен для приема метода Http и URL-адреса, выполнения метода для URL-адреса и возврата результирующего ответа вызывающей стороне. Он возвращает ActionResult, потому что есть условия ошибки, которые необходимо обработать.
В настоящее время метод только сообщает вызывающей стороне, был ли вызов успешным или нет, он не возвращает сведений об ответе нижестоящего сервера. Я хотел бы, чтобы вызывающий абонент получил весь ответ (включая код состояния, тело ответа и т. д.) от вызова.
Как я могу преобразовать HttpResponseMessage во что-то подходящее для возврата через ActionResult?
[HttpGet(@"{method}")]
public async Task<IActionResult> RelayRequest(string method, [FromQuery] string url)
{
var httpMethod = new HttpMethod(method);
Uri uri;
try
{
uri = new Uri(url);
}
catch (Exception e)
{
return BadRequest("Bad URL supplied: " + e.Message);
}
var request = new HttpRequestMessage(httpMethod, uri);
try
{
var response = await _httpClient.SendAsync(request);
// WANT TO RETURN (ActionResult)response HERE! <<<<<<<<<<
if (response.IsSuccessStatusCode)
{
return Ok();
}
return BadRequest(response);
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}