@@ -5,18 +5,32 @@
|
|||||||
//! The `Client` API is designed for most people to make HTTP requests.
|
//! The `Client` API is designed for most people to make HTTP requests.
|
||||||
//! It utilizes the lower level `Request` API.
|
//! It utilizes the lower level `Request` API.
|
||||||
//!
|
//!
|
||||||
//! ```no_run
|
//! ## GET
|
||||||
//! use hyper::Client;
|
|
||||||
//!
|
//!
|
||||||
|
//! ```no_run
|
||||||
|
//! # use hyper::Client;
|
||||||
//! let mut client = Client::new();
|
//! let mut client = Client::new();
|
||||||
//!
|
//!
|
||||||
//! let mut res = client.get("http://example.domain").send().unwrap();
|
//! let res = client.get("http://example.domain").send().unwrap();
|
||||||
//! assert_eq!(res.status, hyper::Ok);
|
//! assert_eq!(res.status, hyper::Ok);
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! The returned value from is a `Response`, which provides easy access
|
//! The returned value is a `Response`, which provides easy access to
|
||||||
//! to the `status`, the `headers`, and the response body via the `Writer`
|
//! the `status`, the `headers`, and the response body via the `Read`
|
||||||
//! trait.
|
//! trait.
|
||||||
|
//!
|
||||||
|
//! ## POST
|
||||||
|
//!
|
||||||
|
//! ```no_run
|
||||||
|
//! # use hyper::Client;
|
||||||
|
//! let mut client = Client::new();
|
||||||
|
//!
|
||||||
|
//! let res = client.post("http://exmaple.domain")
|
||||||
|
//! .body("foo=bar")
|
||||||
|
//! .send()
|
||||||
|
//! .unwrap();
|
||||||
|
//! assert_eq!(res.status, hyper::Ok);
|
||||||
|
//! ```
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
use std::io::{self, copy, Read};
|
use std::io::{self, copy, Read};
|
||||||
use std::iter::Extend;
|
use std::iter::Extend;
|
||||||
|
|||||||
12
src/lib.rs
12
src/lib.rs
@@ -9,8 +9,9 @@
|
|||||||
//! is a low-level typesafe abstraction over raw HTTP, providing an elegant
|
//! is a low-level typesafe abstraction over raw HTTP, providing an elegant
|
||||||
//! layer over "stringly-typed" HTTP.
|
//! layer over "stringly-typed" HTTP.
|
||||||
//!
|
//!
|
||||||
//! Hyper offers both an HTTP/S client an HTTP server which can be used to drive
|
//! Hyper offers both a [Client](client/index.html) and a
|
||||||
//! complex web applications written entirely in Rust.
|
//! [Server](server/index.html) which can be used to drive complex web
|
||||||
|
//! applications written entirely in Rust.
|
||||||
//!
|
//!
|
||||||
//! ## Internal Design
|
//! ## Internal Design
|
||||||
//!
|
//!
|
||||||
@@ -20,8 +21,8 @@
|
|||||||
//!
|
//!
|
||||||
//! ### Common Functionality
|
//! ### Common Functionality
|
||||||
//!
|
//!
|
||||||
//! Functionality and code shared between the Server and Client implementations can
|
//! Functionality and code shared between the Server and Client implementations
|
||||||
//! be found in `src` directly - this includes `NetworkStream`s, `Method`s,
|
//! can be found in `src` directly - this includes `NetworkStream`s, `Method`s,
|
||||||
//! `StatusCode`, and so on.
|
//! `StatusCode`, and so on.
|
||||||
//!
|
//!
|
||||||
//! #### Methods
|
//! #### Methods
|
||||||
@@ -38,7 +39,8 @@
|
|||||||
//!
|
//!
|
||||||
//! #### Headers
|
//! #### Headers
|
||||||
//!
|
//!
|
||||||
//! Hyper's header representation is likely the most complex API exposed by Hyper.
|
//! Hyper's [header](header/index.html) representation is likely the most
|
||||||
|
//! complex API exposed by Hyper.
|
||||||
//!
|
//!
|
||||||
//! Hyper's headers are an abstraction over an internal `HashMap` and provides a
|
//! Hyper's headers are an abstraction over an internal `HashMap` and provides a
|
||||||
//! typesafe API for interacting with headers that does not rely on the use of
|
//! typesafe API for interacting with headers that does not rely on the use of
|
||||||
|
|||||||
@@ -1,4 +1,23 @@
|
|||||||
//! HTTP Server
|
//! HTTP Server
|
||||||
|
//!
|
||||||
|
//! # Example
|
||||||
|
//!
|
||||||
|
//! ```no_run
|
||||||
|
//! use hyper::server::{Server, Request, Response};
|
||||||
|
//! use hyper::status::StatusCode;
|
||||||
|
//! use hyper::uri::RequestUri;
|
||||||
|
//!
|
||||||
|
//! let server = Server::http(|req: Request, mut res: Response| {
|
||||||
|
//! *res.status_mut() = match (req.method, req.uri) {
|
||||||
|
//! (hyper::Get, RequestUri::AbsolutePath(ref path)) if path == "/" => {
|
||||||
|
//! StatusCode::Ok
|
||||||
|
//! },
|
||||||
|
//! (hyper::Get, _) => StatusCode::NotFound,
|
||||||
|
//! _ => StatusCode::MethodNotAllowed
|
||||||
|
//! };
|
||||||
|
//!
|
||||||
|
//! res.start().unwrap().end().unwrap();
|
||||||
|
//! }).listen("0.0.0.0:8080").unwrap();
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::io::{ErrorKind, BufWriter, Write};
|
use std::io::{ErrorKind, BufWriter, Write};
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|||||||
Reference in New Issue
Block a user