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

Unified Diff: pkg/http/README.md

Issue 263563005: Move the HTTP library documentation to the README. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months 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
« no previous file with comments | « no previous file | pkg/http/lib/http.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/http/README.md
diff --git a/pkg/http/README.md b/pkg/http/README.md
index 93d42668d855e220b5da0d445c8f2bfb374c9723..81ca28630e50e2e5a1af400e8c98cf15064441ea 100644
--- a/pkg/http/README.md
+++ b/pkg/http/README.md
@@ -11,11 +11,72 @@ imports `dart:io`, it can use this package.
## Using
-Please see the [API docs][docs] for explanations and examples.
+The easiest way to use this library is via the top-level functions. They allow
+you to make individual HTTP requests with minimal hassle:
+
+```dart
+import 'package:http/http.dart' as http;
+
+var url = "http://example.com/whatsit/create";
+http.post(url, body: {"name": "doodle", "color": "blue"})
+ .then((response) {
+ print("Response status: ${response.statusCode}");
+ print("Response body: ${response.body}");
+});
+
+http.read("http://example.com/foobar.txt").then(print);
+```
+
+If you're making multiple requests to the same server, you can keep open a
+persistent connection by using a [Client][] rather than making one-off requests.
+If you do this, make sure to close the client when you're done:
+
+```dart
+var client = new http.Client();
+client.post(
+ "http://example.com/whatsit/create",
+ body: {"name": "doodle", "color": "blue"})
+ .then((response) => client.get(response.bodyFields['uri']))
+ .then((response) => print(response.body))
+ .whenComplete(client.close);
+```
+
+You can also exert more fine-grained control over your requests and responses by
+creating [Request][] or [StreamedRequest][] objects yourself and passing them to
+[Client.send][].
+
+[Request]: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/http/http.Request
+
+[StreamedRequest]: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/http/http.StreamedRequest
+
+[Client.send]: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/http/http.Client#id_send
+
+This package is designed to be composable. This makes it easy for external
+libraries to work with one another to add behavior to it. Libraries wishing to
+add behavior should create a subclass of [BaseClient][] that wraps another
+[Client][] and adds the desired behavior:
+
+[BaseClient]: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/http/http.BaseClient
+
+[Client]: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/http/http.Client
+
+```dart
+class UserAgentClient extends http.BaseClient {
+ final String userAgent;
+ final http.Client _inner;
+
+ UserAgentClient(this.userAgent, this._inner);
+
+ Future<StreamedResponse> send(BaseRequest request) {
+ request.headers['user-agent'] = userAgent;
+ return _inner.send(request);
+ }
+}
+```
## Filing issues
Please file issues for the http package at [http://dartbug.com/new][bugs].
[bugs]: http://dartbug.com/new
-[docs]: https://api.dartlang.org/docs/channels/dev/latest/http.html
+[docs]: https://api.dartlang.org/docs/channels/dev/latest/http.html
« no previous file with comments | « no previous file | pkg/http/lib/http.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698