Как вызвать метод из HTML-файла в дартс? - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу отправить xmlhttprequest на мой сервер, используя Dart.У меня есть файл html, который действительно может это сделать.Есть ли способ запустить метод из файла HTML в дартс?Или, может быть, этот код можно переписать в дартс?В ответ я получаю JSON, который содержит объекты с двумя полями: имя и длительность.

// my html file 
<script>

    function createCORSRequest() {
        let xhr = new XMLHttpRequest();


        if ("withCredentials" in xhr) {
            xhr.open('GET', 'http://localhost:8080/sounds', true);
        } else {
            if (typeof XDomainRequest != "undefined") {
                xhr = new XDomainRequest();
                xhr.open('GET', 'http://localhost:8080/sounds');
            } else {
                xhr = null;
            }
        }
        return xhr;
    }

    function makeCorsRequest() {
        var request = createCORSRequest();
        if (!request) {
            alert('CORS not supported');
            return;
        }

// here I get the names of the objects
        request.onload = function () {
            var movies = request.response;
            for (const movie of movies) {
                console.log(movie.movieName)
            }
        };

        request.onerror = function () {
            alert("Request failed");
        };
        request.responseType = 'json';
        request.send();
    }
</script>

Пример JSON, который я получаю в ответ от моего сервера:

[
  {
    "movieName": "Dog and the main Dogger",
    "duration": "3:30:03"
  },
  {
    "movieName": "Hunger Games",
    "duration": "3:30:03"
  },
  {
    "movieName": "Robot Chicken",
    "duration": "3:30:01"
  },
  {
    "movieName": "Moskovskaya techka",
    "duration": "3:30:03"
  },
  {
    "movieName": "Terminator",
    "duration": "3:30:03"
  }
] 

Я хочу получить имена (поле movieName) из JSON в Dart, как это было сделано в моем HTML файле.

1 Ответ

0 голосов
/ 13 апреля 2019

Вы можете использовать пакет http , который добавляет поддержку к XMLRequest s с BrowserClient.

Вот пример:

var browser = BrowserClient();

var response = await browser.get('http://localhost:8080/sounds');

var body = response.body; //Here you can use 'json.encode' from the `dart:convert` package to parse the json list.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...