Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1668)

Unified Diff: pkg/http/lib/src/request.dart

Issue 810223002: Remove the http package from the repo. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/http/lib/src/request.dart
diff --git a/pkg/http/lib/src/request.dart b/pkg/http/lib/src/request.dart
deleted file mode 100644
index b83e6a71b4cb87a813f0d54931254e58dac1d079..0000000000000000000000000000000000000000
--- a/pkg/http/lib/src/request.dart
+++ /dev/null
@@ -1,163 +0,0 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library request;
-
-import 'dart:convert';
-import 'dart:typed_data';
-
-import 'package:http_parser/http_parser.dart';
-
-import 'base_request.dart';
-import 'byte_stream.dart';
-import 'utils.dart';
-
-/// An HTTP request where the entire request body is known in advance.
-class Request extends BaseRequest {
- /// The size of the request body, in bytes. This is calculated from
- /// [bodyBytes].
- ///
- /// The content length cannot be set for [Request], since it's automatically
- /// calculated from [bodyBytes].
- int get contentLength => bodyBytes.length;
-
- set contentLength(int value) {
- throw new UnsupportedError("Cannot set the contentLength property of "
- "non-streaming Request objects.");
- }
-
- /// The default encoding to use when converting between [bodyBytes] and
- /// [body]. This is only used if [encoding] hasn't been manually set and if
- /// the content-type header has no encoding information.
- Encoding _defaultEncoding;
-
- /// The encoding used for the request. This encoding is used when converting
- /// between [bodyBytes] and [body].
- ///
- /// If the request has a `Content-Type` header and that header has a `charset`
- /// parameter, that parameter's value is used as the encoding. Otherwise, if
- /// [encoding] has been set manually, that encoding is used. If that hasn't
- /// been set either, this defaults to [UTF8].
- ///
- /// If the `charset` parameter's value is not a known [Encoding], reading this
- /// will throw a [FormatException].
- ///
- /// If the request has a `Content-Type` header, setting this will set the
- /// charset parameter on that header.
- Encoding get encoding {
- if (_contentType == null ||
- !_contentType.parameters.containsKey('charset')) {
- return _defaultEncoding;
- }
- return requiredEncodingForCharset(_contentType.parameters['charset']);
- }
-
- set encoding(Encoding value) {
- _checkFinalized();
- _defaultEncoding = value;
- var contentType = _contentType;
- if (contentType == null) return;
- _contentType = contentType.change(parameters: {'charset': value.name});
- }
-
- // TODO(nweiz): make this return a read-only view
- /// The bytes comprising the body of the request. This is converted to and
- /// from [body] using [encoding].
- ///
- /// This list should only be set, not be modified in place.
- Uint8List get bodyBytes => _bodyBytes;
- Uint8List _bodyBytes;
-
- set bodyBytes(List<int> value) {
- _checkFinalized();
- _bodyBytes = toUint8List(value);
- }
-
- /// The body of the request as a string. This is converted to and from
- /// [bodyBytes] using [encoding].
- ///
- /// When this is set, if the request does not yet have a `Content-Type`
- /// header, one will be added with the type `text/plain`. Then the `charset`
- /// parameter of the `Content-Type` header (whether new or pre-existing) will
- /// be set to [encoding] if it wasn't already set.
- String get body => encoding.decode(bodyBytes);
-
- set body(String value) {
- bodyBytes = encoding.encode(value);
- var contentType = _contentType;
- if (contentType == null) {
- _contentType = new MediaType("text", "plain", {'charset': encoding.name});
- } else if (!contentType.parameters.containsKey('charset')) {
- _contentType = contentType.change(parameters: {'charset': encoding.name});
- }
- }
-
- /// The form-encoded fields in the body of the request as a map from field
- /// names to values. The form-encoded body is converted to and from
- /// [bodyBytes] using [encoding] (in the same way as [body]).
- ///
- /// If the request doesn't have a `Content-Type` header of
- /// `application/x-www-form-urlencoded`, reading this will throw a
- /// [StateError].
- ///
- /// If the request has a `Content-Type` header with a type other than
- /// `application/x-www-form-urlencoded`, setting this will throw a
- /// [StateError]. Otherwise, the content type will be set to
- /// `application/x-www-form-urlencoded`.
- ///
- /// This map should only be set, not modified in place.
- Map<String, String> get bodyFields {
- var contentType = _contentType;
- if (contentType == null ||
- contentType.mimeType != "application/x-www-form-urlencoded") {
- throw new StateError('Cannot access the body fields of a Request without '
- 'content-type "application/x-www-form-urlencoded".');
- }
-
- return queryToMap(body, encoding: encoding);
- }
-
- set bodyFields(Map<String, String> fields) {
- var contentType = _contentType;
- if (contentType == null) {
- _contentType = new MediaType("application", "x-www-form-urlencoded");
- } else if (contentType.mimeType != "application/x-www-form-urlencoded") {
- throw new StateError('Cannot set the body fields of a Request with '
- 'content-type "${contentType.mimeType}".');
- }
-
- this.body = mapToQuery(fields, encoding: encoding);
- }
-
- /// Creates a new HTTP request.
- Request(String method, Uri url)
- : super(method, url),
- _defaultEncoding = UTF8,
- _bodyBytes = new Uint8List(0);
-
- /// Freezes all mutable fields and returns a single-subscription [ByteStream]
- /// containing the request body.
- ByteStream finalize() {
- super.finalize();
- return new ByteStream.fromBytes(bodyBytes);
- }
-
- /// The `Content-Type` header of the request (if it exists) as a
- /// [MediaType].
- MediaType get _contentType {
- var contentType = headers['content-type'];
- if (contentType == null) return null;
- return new MediaType.parse(contentType);
- }
-
- set _contentType(MediaType value) {
- headers['content-type'] = value.toString();
- }
-
- /// Throw an error if this request has been finalized.
- void _checkFinalized() {
- if (!finalized) return;
- throw new StateError("Can't modify a finalized Request.");
- }
-}

Powered by Google App Engine
This is Rietveld 408576698