2012-04-20 30 views
14

Có chức năng thực hiện mã hóa url trong Dart không? Tôi đang thực hiện một cuộc gọi AJAX bằng cách sử dụng đối tượng XMLHttpRequest và tôi cần url được mã hóa url.trong Dart

Tôi đã thực hiện tìm kiếm trên dartlang.org, nhưng nó không bật lên bất kỳ kết quả nào.

Trả lời

11

Cập nhật: Có hiện đang hỗ trợ cho mã hóa/giải mã URI trong the Dart Uri class

đang URI Dart được đặt trong một thư viện riêng biệt gọi là dart:uri (vì vậy nó có thể được chia sẻ giữa dart:htmldart:io). Tôi có vẻ như hiện tại không có chức năng urlencode, vì vậy, giải pháp thay thế tốt nhất của bạn hiện có thể là sử dụng this Thực thi Dart của JavaScript encodeUriComponent.

+0

Tôi nghĩ rằng tôi có thể sống với nó bây giờ. Nhưng nó sẽ tốt hơn nếu điều này được thêm vào phi tiêu: uri. – Sudar

+0

@Sudar đồng ý tôi sẽ cố gắng tạo ra một số tiếng ồn để có được nó trong –

+1

phi tiêu: uri đã được gỡ bỏ, nó bây giờ là một phần của lõi. https://groups.google.com/a/dartlang.org/forum/#!topic/misc/pHyoawHOhU0 – Max

1

Tôi chưa nghĩ là có. Kiểm tra http://unpythonic.blogspot.com/2011/11/oauth20-and-jsonp-with-dartin-web.html và phương pháp encodeComponent.

Lưu ý, cũng thiếu một số ký tự, cần phải mở rộng. Dart thực sự nên có điều này được xây dựng trong và dễ dàng để có được. Nó có thể có nó trong thực tế, nhưng tôi đã không tìm thấy nó.

7

Tôi đã viết chức năng nhỏ này để chuyển đổi Bản đồ thành chuỗi được mã hóa URL, có thể là những gì bạn đang tìm kiếm.

String encodeMap((Map data) { 
    return data.keys.map((key) => "${Uri.encodeComponent(key)}=${Uri.encodeComponent(data[key])}").join("&"); 
}