Довольно новый с ASP.Net WEB API. Имея некоторые проблемы с надлежащей конфигурацией API (и возвращаемым типом) для моего вызова API, который вызывает другую службу ASHX.ASP.Net Web API Возвращаемые значения массива
Я следующие коды (протестировано в HomeController просто чтобы убедиться, что вызов службы будет работать):
public async Task<ActionResult> Index()
{
WebRequest request = WebRequest.CreateHttp("http://callme/address.ashx");
var response = await request.GetResponseAsync();
string content;
using (var stream = response.GetResponseStream())
using(var reader = new StreamReader(stream))
{
content = await reader.ReadToEndAsync();
}
var result = JsonConvert.DeserializeObject<MyResult[]>(content);
return this.View();
}
public class MyResult
{
public string ClientAddress { get; set; }
}
Теперь, пытаясь портировать его через к ASP.Net Web API вызова:
ClientAddressController.cs
public class ClientAddressController: ApiController
{
public async IQueryable<MyResult> GetClientAddress()
{
WebRequest request = WebRequest.CreateHttp("http://callme/address.ashx");
var response = await request.GetResponseAsync();
string content;
using (var stream = response.GetResponseStream())
using(var reader = new StreamReader(stream))
{
content = await reader.ReadToEndAsync();
}
var result = JsonConvert.DeserializeObject<MyResult[]>(content);
// How to return the result object??
}
}
public class MyResult
{
public string ClientAddress { get; set; }
}
мне нужна помощь, чтобы правильно определить правильные параметры для вызова Web API, так что я мог бы вернуть объект результата.
Объект результат будет просто массив строк:
[{"Address": "Address 100"}, {"Address": "Address 200"}, {"Address": "300"}]
Надеясь получить некоторые идеи по разрешению этого. У меня есть идея относительно возврата запросов к базе данных в веб-API, но вызов службы (и метод async) отбросил меня от паза.
Спасибо.
** UPDATE *****
был в состоянии найти какое-то решение по этому вопросу, и я отправляю решение, которое я имею.
public class ClientAddressController: ApiController
{
public async Task<IHttpActionResult> GetClientAddress()
{
WebRequest request = WebRequest.CreateHttp("http://callme/address.ashx");
var response = await request.GetResponseAsync();
string content;
using (var stream = response.GetResponseStream())
using(var reader = new StreamReader(stream))
{
content = await reader.ReadToEndAsync();
}
var result = JsonConvert.DeserializeObject<MyResult[]>(content);
return Ok(result);
// How to return the result object??
}
}
public class MyResult
{
public string ClientAddress { get; set; }
}
P.S .: Я собираюсь принять ответ Стриплинга, поскольку он предоставил мне какое-то направление.