| #!mojo mojo:sky_viewer |
| <sky> |
| <script> |
| import '/sky/framework/embedder.dart'; |
| import 'dart:async'; |
| import 'dart:typed_data'; |
| import "dart:sky.internals" as internals; |
| import 'dart:mojo.bindings'; |
| import 'dart:mojo.core'; |
| |
| import 'package:mojo/services/network/public/interfaces/network_service.mojom.dart'; |
| import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart'; |
| |
| Future<String> run(url) async { |
| var networkService= new NetworkServiceProxy.unbound(); |
| embedder.connectToService("mojo:network_service", networkService); |
| |
| var urlLoader = new UrlLoaderProxy.unbound(); |
| networkService.ptr.createUrlLoader(urlLoader); |
| |
| var urlRequest = new UrlRequest() |
| ..url = url |
| ..autoFollowRedirects = true; |
| var urlResponse = await urlLoader.ptr.start(urlRequest); |
| |
| urlLoader.close(); |
| networkService.close(); |
| |
| print("url => ${urlResponse.response.url}"); |
| print("status_line => ${urlResponse.response.statusLine}"); |
| print("mime_type => ${urlResponse.response.mimeType}"); |
| |
| ByteData bodyData = |
| await DataPipeDrainer.drainHandle(urlResponse.response.body); |
| print("read ${bodyData.lengthInBytes} bytes"); |
| |
| return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); |
| } |
| |
| main() async { |
| var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; |
| var result = await run(url); |
| internals.notifyTestComplete(result); |
| } |
| </script> |
| </sky> |