mirror of
https://github.com/actix/actix-extras.git
synced 2024-11-28 01:32:57 +01:00
add shortcut method for client requests
This commit is contained in:
parent
691457fbfe
commit
af0c8d893d
@ -14,6 +14,7 @@ pub(crate) use self::writer::HttpClientWriter;
|
|||||||
pub(crate) use self::parser::{HttpResponseParser, HttpResponseParserError};
|
pub(crate) use self::parser::{HttpResponseParser, HttpResponseParserError};
|
||||||
|
|
||||||
use error::ResponseError;
|
use error::ResponseError;
|
||||||
|
use http::Method;
|
||||||
use httpresponse::HttpResponse;
|
use httpresponse::HttpResponse;
|
||||||
|
|
||||||
|
|
||||||
@ -28,3 +29,65 @@ impl ResponseError for SendRequestError {
|
|||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Create request builder for `GET` request
|
||||||
|
///
|
||||||
|
/// ```rust
|
||||||
|
/// # extern crate actix;
|
||||||
|
/// # extern crate actix_web;
|
||||||
|
/// # extern crate futures;
|
||||||
|
/// # use futures::Future;
|
||||||
|
/// use actix_web::client;
|
||||||
|
///
|
||||||
|
/// fn main() {
|
||||||
|
/// let sys = actix::System::new("test");
|
||||||
|
///
|
||||||
|
/// actix::Arbiter::handle().spawn({
|
||||||
|
/// client::get("http://www.rust-lang.org") // <- Create request builder
|
||||||
|
/// .header("User-Agent", "Actix-web")
|
||||||
|
/// .finish().unwrap()
|
||||||
|
/// .send() // <- Send http request
|
||||||
|
/// .map_err(|_| ())
|
||||||
|
/// .and_then(|response| { // <- server http response
|
||||||
|
/// println!("Response: {:?}", response);
|
||||||
|
/// # actix::Arbiter::system().do_send(actix::msgs::SystemExit(0));
|
||||||
|
/// Ok(())
|
||||||
|
/// })
|
||||||
|
/// });
|
||||||
|
///
|
||||||
|
/// sys.run();
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
|
pub fn get<U: AsRef<str>>(uri: U) -> ClientRequestBuilder {
|
||||||
|
let mut builder = ClientRequest::build();
|
||||||
|
builder.method(Method::GET).uri(uri);
|
||||||
|
builder
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create request builder for `HEAD` request
|
||||||
|
pub fn head<U: AsRef<str>>(uri: U) -> ClientRequestBuilder {
|
||||||
|
let mut builder = ClientRequest::build();
|
||||||
|
builder.method(Method::HEAD).uri(uri);
|
||||||
|
builder
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create request builder for `POST` request
|
||||||
|
pub fn post<U: AsRef<str>>(uri: U) -> ClientRequestBuilder {
|
||||||
|
let mut builder = ClientRequest::build();
|
||||||
|
builder.method(Method::POST).uri(uri);
|
||||||
|
builder
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create request builder for `PUT` request
|
||||||
|
pub fn put<U: AsRef<str>>(uri: U) -> ClientRequestBuilder {
|
||||||
|
let mut builder = ClientRequest::build();
|
||||||
|
builder.method(Method::PUT).uri(uri);
|
||||||
|
builder
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Create request builder for `DELETE` request
|
||||||
|
pub fn delete<U: AsRef<str>>(uri: U) -> ClientRequestBuilder {
|
||||||
|
let mut builder = ClientRequest::build();
|
||||||
|
builder.method(Method::DELETE).uri(uri);
|
||||||
|
builder
|
||||||
|
}
|
||||||
|
@ -6,8 +6,6 @@ use std::time::Duration;
|
|||||||
use actix::{Addr, Unsync};
|
use actix::{Addr, Unsync};
|
||||||
use cookie::{Cookie, CookieJar};
|
use cookie::{Cookie, CookieJar};
|
||||||
use bytes::{Bytes, BytesMut, BufMut};
|
use bytes::{Bytes, BytesMut, BufMut};
|
||||||
use http::{uri, HeaderMap, Method, Version, Uri, HttpTryFrom, Error as HttpError};
|
|
||||||
use http::header::{self, HeaderName, HeaderValue};
|
|
||||||
use futures::Stream;
|
use futures::Stream;
|
||||||
use serde_json;
|
use serde_json;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
@ -19,10 +17,39 @@ use error::Error;
|
|||||||
use header::{ContentEncoding, Header, IntoHeaderValue};
|
use header::{ContentEncoding, Header, IntoHeaderValue};
|
||||||
use httpmessage::HttpMessage;
|
use httpmessage::HttpMessage;
|
||||||
use httprequest::HttpRequest;
|
use httprequest::HttpRequest;
|
||||||
|
use http::{uri, HeaderMap, Method, Version, Uri, HttpTryFrom, Error as HttpError};
|
||||||
|
use http::header::{self, HeaderName, HeaderValue};
|
||||||
use super::pipeline::SendRequest;
|
use super::pipeline::SendRequest;
|
||||||
use super::connector::{Connection, ClientConnector};
|
use super::connector::{Connection, ClientConnector};
|
||||||
|
|
||||||
/// An HTTP Client Request
|
/// An HTTP Client Request
|
||||||
|
///
|
||||||
|
/// ```rust
|
||||||
|
/// # extern crate actix;
|
||||||
|
/// # extern crate actix_web;
|
||||||
|
/// # extern crate futures;
|
||||||
|
/// # use futures::Future;
|
||||||
|
/// use actix_web::client::ClientRequest;
|
||||||
|
///
|
||||||
|
/// fn main() {
|
||||||
|
/// let sys = actix::System::new("test");
|
||||||
|
///
|
||||||
|
/// actix::Arbiter::handle().spawn({
|
||||||
|
/// ClientRequest::get("http://www.rust-lang.org") // <- Create request builder
|
||||||
|
/// .header("User-Agent", "Actix-web")
|
||||||
|
/// .finish().unwrap()
|
||||||
|
/// .send() // <- Send http request
|
||||||
|
/// .map_err(|_| ())
|
||||||
|
/// .and_then(|response| { // <- server http response
|
||||||
|
/// println!("Response: {:?}", response);
|
||||||
|
/// # actix::Arbiter::system().do_send(actix::msgs::SystemExit(0));
|
||||||
|
/// Ok(())
|
||||||
|
/// })
|
||||||
|
/// });
|
||||||
|
///
|
||||||
|
/// sys.run();
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
pub struct ClientRequest {
|
pub struct ClientRequest {
|
||||||
uri: Uri,
|
uri: Uri,
|
||||||
method: Method,
|
method: Method,
|
||||||
|
Loading…
Reference in New Issue
Block a user