OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Utility class for encoding a string into UTF-8 byte stream. | 5 // Utility class for encoding a string into UTF-8 byte stream. |
6 class _UTF8Encoder { | 6 class _UTF8Encoder { |
7 static List<int> encodeString(String string) { | 7 static List<int> encodeString(String string) { |
8 int size = _encodingSize(string); | 8 int size = _encodingSize(string); |
9 ByteArray result = new ByteArray(size); | 9 ByteArray result = new ByteArray(size); |
10 _encodeString(string, result); | 10 _encodeString(string, result); |
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1049 _HttpClient() : _openSockets = new Map(), | 1049 _HttpClient() : _openSockets = new Map(), |
1050 _activeSockets = new Set(), | 1050 _activeSockets = new Set(), |
1051 _shutdown = false; | 1051 _shutdown = false; |
1052 | 1052 |
1053 HttpClientConnection open( | 1053 HttpClientConnection open( |
1054 String method, String host, int port, String path) { | 1054 String method, String host, int port, String path) { |
1055 if (_shutdown) throw new HttpException("HttpClient shutdown"); | 1055 if (_shutdown) throw new HttpException("HttpClient shutdown"); |
1056 return _prepareHttpClientConnection(host, port, method, path); | 1056 return _prepareHttpClientConnection(host, port, method, path); |
1057 } | 1057 } |
1058 | 1058 |
1059 HttpClientConnection openUrl(String method, Uri url) { | |
1060 if (url.scheme != "http") { | |
1061 throw new HttpException("Unsupported URL scheme ${url.scheme}"); | |
1062 } | |
1063 if (url.userInfo != "") { | |
1064 throw new HttpException("Unsupported user info in URL"); | |
Mads Ager (google)
2012/03/08 08:02:52
Interpolate the userInfo?
Søren Gjesse
2012/03/08 08:30:04
Done.
| |
1065 } | |
1066 int port = url.port == 0 ? HttpClient.DEFAULT_HTTP_PORT : url.port; | |
1067 String path; | |
Mads Ager (google)
2012/03/08 08:02:52
After the sanity checks, could you just use url.to
Søren Gjesse
2012/03/08 08:30:04
Unfortunately not, at that will add the prefix "ht
| |
1068 if (url.query != "") { | |
1069 if (url.fragment != "") { | |
1070 path = "${url.path}?${url.query}#${url.fragment}"; | |
1071 } else { | |
1072 path = "${url.path}?${url.query}"; | |
1073 } | |
1074 } else { | |
1075 path = url.path; | |
1076 } | |
1077 return open(method, url.domain, port, path); | |
1078 } | |
1079 | |
1059 HttpClientConnection get(String host, int port, String path) { | 1080 HttpClientConnection get(String host, int port, String path) { |
1060 return open("GET", host, port, path); | 1081 return open("GET", host, port, path); |
1061 } | 1082 } |
1062 | 1083 |
1084 HttpClientConnection getUrl(Uri url) => openUrl("GET", url); | |
1085 | |
1063 HttpClientConnection post(String host, int port, String path) { | 1086 HttpClientConnection post(String host, int port, String path) { |
1064 return open("POST", host, port, path); | 1087 return open("POST", host, port, path); |
1065 } | 1088 } |
1066 | 1089 |
1090 HttpClientConnection postUrl(Uri url) => openUrl("POST", url); | |
1091 | |
1067 void shutdown() { | 1092 void shutdown() { |
1068 _openSockets.forEach((String key, Queue<_SocketConnection> connections) { | 1093 _openSockets.forEach((String key, Queue<_SocketConnection> connections) { |
1069 while (!connections.isEmpty()) { | 1094 while (!connections.isEmpty()) { |
1070 _SocketConnection socketConn = connections.removeFirst(); | 1095 _SocketConnection socketConn = connections.removeFirst(); |
1071 socketConn._socket.close(); | 1096 socketConn._socket.close(); |
1072 } | 1097 } |
1073 }); | 1098 }); |
1074 _activeSockets.forEach((_SocketConnection socketConn) { | 1099 _activeSockets.forEach((_SocketConnection socketConn) { |
1075 socketConn._socket.close(); | 1100 socketConn._socket.close(); |
1076 }); | 1101 }); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1182 _onError = callback; | 1207 _onError = callback; |
1183 } | 1208 } |
1184 | 1209 |
1185 Function _onOpen; | 1210 Function _onOpen; |
1186 Function _onError; | 1211 Function _onError; |
1187 Map<String, Queue<_SocketConnection>> _openSockets; | 1212 Map<String, Queue<_SocketConnection>> _openSockets; |
1188 Set<_SocketConnection> _activeSockets; | 1213 Set<_SocketConnection> _activeSockets; |
1189 Timer _evictionTimer; | 1214 Timer _evictionTimer; |
1190 bool _shutdown; // Has this HTTP client been shutdown? | 1215 bool _shutdown; // Has this HTTP client been shutdown? |
1191 } | 1216 } |
OLD | NEW |