Get запрос Xamarin C#
Эмулятор айфона получает данные при get запросе, а физическое устройство нет, может кто то подскажет в чём может быть проблема?
public List<Photo> GetPhotoSearch(double northEastLatitude, double northEastLongtitude,
double southWestLatitude, double southWestLongtitude)
{
List<Photo> photos = new List<Photo>();
WebRequest request = WebRequest.Create($"{totalUrl}/northEast='{northEastLatitude}'-'{northEastLongtitude}'" +
$"_southWest='{southWestLatitude}'-'{southWestLongtitude}'");
WebResponse response = request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
string line = "";
while ((line = reader.ReadLine()) != null)
{
photos = JsonConvert.DeserializeObject<List<Photo>>(line);
}
}
}
response.Close();
return photos;
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Возможно у вас ошибка в URL запроса, так как вы не разделяете параметры с помощью & и не отделяете их от базового URL с помощью ?.
Я дополнительно переписал все это под HttpClient, потому что Microsoft не рекомендует использовать устаревший WebClient.
async void OnButtonClicked(object sender, EventArgs args)
{
try
{
Dictionary<string, string> queryParams = new Dictionary<string, string>()
{
{ "northEast", $"'{bounds.NorthEast.Latitude}'-'{bounds.NorthEast.Longitude}'" },
{ "southWest", $"'{bounds.SouthWest.Latitude}'-'{bounds.SouthWest.Longitude}'" }
};
List<Photo> photos = await service.GetPhotoSearch(queryParams);
Photos = new ObservableCollection<Photo>(photos);
}
catch (Exception ex)
{
// Debug.WriteLine(ex.Message);
}
}
private static readonly HttpClient client = new HttpClient();
public async Task<List<Photo>> GetPhotoSearch(Dictionary<string, string> queryParams)
{
string query;
using (HttpContent content = new FormUrlEncodedContent(queryParams))
{
query = await content.ReadAsStringAsync();
}
using (var response = await client.GetAsync($"{totalUrl}/?{query}", HttpCompletionOption.ResponseHeadersRead))
{
response.EnsureSuccessStatusCode(); // бросает исключение, если сервер вернул ошибку
string json = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<List<Photo>>(json);
}
}