У меня есть интерфейс, который определяется следующим образом:
internal interface IHttpService
{
Task SendGetRequest(string param);
}
И следующий конкретный класс (очевидно, есть ошибки компиляции):
public class HttpService : IHttpService
{
private readonly HttpClient client;
private const string httpLink = "https://somesite.org/search?q=";
private const string httpSuffix = "&format=json&ads=1";
public HttpService()
{
client = new HttpClient();
client.DefaultRequestHeaders.Add("user-agent", "myapp");
}
public async Task SendGetRequest(string param)
{
var response = await client.GetAsync(httpLink + param + httpSuffix);
return response.Content.ReadAsStringAsync();
}
}
Так что я, очевидно, получаю компиляцию ошибка при возврате функции ReadAsStringAsyn c, но я хочу, чтобы моя модель представления получила ответ от этой функции. Моя модель представления выглядит следующим образом:
public SearchViewModel()
{
httpService = (App.Current as App).Container.GetService<IHttpService>();
SearchCommand = new RelayCommand(() =>
{
// Will need to do some proper validation here at some point
var response = await httpService.SendGetRequest(httpStringToSend);
});
}
Я уверен, что что-то упустил, но я не совсем уверен, что ...