Arhn - архитектура программирования

Xamarin HttpClient GetStringAsync никогда не возвращается

Следующий код никогда не возвращает никакого значения, я изучаю Xamarin Forms и использую переносимую библиотеку классов на VS2017, всякий раз, когда я запускаю приложение, оно зависает на этой строке
var content = await _client.GetStringAsync (_url);
и никогда ничего не возвращает, пока приложение не выбросит исключение (TaskCanceledException). Я искал Google по всему миру и не могу найти решения ...

Это не работает как на iOS, так и на Android, я также тестировал Shared вместо PCL, и это также не работает. Работа. .. Я установил Microsoft.Net.Http на все проекты (PCL, Android и iOS)

Я новичок, и сейчас я учусь потреблять спокойный API.

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace Posts
{
public partial class MainPage : ContentPage
{
    private const string _url ="https://jsonplaceholder.typicode.com/posts";

    private HttpClient _client = new HttpClient();

    public MainPage()
    {
        InitializeComponent();
    }

    protected override async void OnAppearing()
    {
        var content = await _client.GetStringAsync(_url);
        var posts = JsonConvert.DeserializeObject<List<Post>>(content);
        postsListView.ItemsSource = new ObservableCollection<Post>(posts);
        base.OnAppearing();
    }

    void OnAdd(object sender, EventArgs e)
    {
    }

    void OnUpdate(object sender, EventArgs e)
    {
    }

    void OnDelete(object sender, EventArgs e)
    {
    }
}

public class Post
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Body { get; set; }
}

}

30.11.2017

  • Вы уверены, что ваше устройство/эмулятор имеет доступ в интернет? 30.11.2017
  • Я поставил разрешение на доступ в Интернет, я не использую эмулятор, и я проверил его, получив доступ к URL-адресу через мобильный браузер. 30.11.2017
  • Если вы можете получить доступ к конечной точке из браузера устройства, похоже, вам нужно включить доступ в Интернет для вашего приложения, используя файл манифеста: developer.xamarin.com/recipes/android/general/projects/ 30.11.2017
  • Я уже добавил разрешение, и это не сработало 30.11.2017

Ответы:


1

После долгих исследований и тестов я обнаружил, что проблема в том, что мне вернули Json API. Чего я не понял, так это того, что когда я обращаюсь к URL-адресу через браузер, json приходит правильно, и в VS он не выдает никаких ошибок при разборе json.

30.11.2017
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..