pub struct RequestBuilder { /* private fields */ }Expand description
HTTP 请求的构建器。
Implementations§
Source§impl RequestBuilder
impl RequestBuilder
Sourcepub fn new() -> RequestBuilder
pub fn new() -> RequestBuilder
创建构建器的默认实例以构建请求。
§例子
use boluo_core::request::RequestBuilder;
let req = RequestBuilder::new()
.method("POST")
.body(())
.unwrap();Sourcepub fn method<T>(self, method: T) -> RequestBuilder
pub fn method<T>(self, method: T) -> RequestBuilder
设置请求的 HTTP 方法。
默认情况下,这是 GET。
§例子
use boluo_core::request::Request;
let req = Request::builder()
.method("POST")
.body(())
.unwrap();Sourcepub fn method_ref(&self) -> Option<&Method>
pub fn method_ref(&self) -> Option<&Method>
Sourcepub fn method_mut(&mut self) -> Option<&mut Method>
pub fn method_mut(&mut self) -> Option<&mut Method>
Sourcepub fn uri<T>(self, uri: T) -> RequestBuilder
pub fn uri<T>(self, uri: T) -> RequestBuilder
设置请求的 URI。
默认情况下,这是 /。
§例子
use boluo_core::request::Request;
let req = Request::builder()
.uri("https://www.rust-lang.org/")
.body(())
.unwrap();Sourcepub fn version(self, version: Version) -> RequestBuilder
pub fn version(self, version: Version) -> RequestBuilder
设置请求的 HTTP 版本。
默认情况下,这是 HTTP/1.1。
§例子
use boluo_core::http::Version;
use boluo_core::request::Request;
let req = Request::builder()
.version(Version::HTTP_2)
.body(())
.unwrap();Sourcepub fn version_ref(&self) -> Option<&Version>
pub fn version_ref(&self) -> Option<&Version>
获取请求的 HTTP 版本的引用。
默认情况下,这是 HTTP/1.1。如果构建器有错误,则返回 None。
§例子
use boluo_core::http::Version;
use boluo_core::request::Request;
let mut req = Request::builder();
assert_eq!(req.version_ref().unwrap(), &Version::HTTP_11);
req = req.version(Version::HTTP_2);
assert_eq!(req.version_ref().unwrap(), &Version::HTTP_2);Sourcepub fn version_mut(&mut self) -> Option<&mut Version>
pub fn version_mut(&mut self) -> Option<&mut Version>
获取请求的 HTTP 版本的可变引用。
默认情况下,这是 HTTP/1.1。如果构建器有错误,则返回 None。
§例子
use boluo_core::http::Version;
use boluo_core::request::Request;
let mut req = Request::builder();
assert_eq!(req.version_ref().unwrap(), &Version::HTTP_11);
*req.version_mut().unwrap() = Version::HTTP_2;
assert_eq!(req.version_ref().unwrap(), &Version::HTTP_2);Sourcepub fn header<K, V>(self, key: K, value: V) -> RequestBuilderwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
pub fn header<K, V>(self, key: K, value: V) -> RequestBuilderwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
将标头追加到请求中。
此函数将提供的键值对追加到请求内部的 HeaderMap 中。本质上,
这相当于调用 HeaderMap::append。
§例子
use boluo_core::request::Request;
let req = Request::builder()
.header("Accept", "text/html")
.header("X-Custom-Foo", "bar")
.body(())
.unwrap();Sourcepub fn headers_ref(&self) -> Option<&HeaderMap<HeaderValue>>
pub fn headers_ref(&self) -> Option<&HeaderMap<HeaderValue>>
Sourcepub fn headers_mut(&mut self) -> Option<&mut HeaderMap<HeaderValue>>
pub fn headers_mut(&mut self) -> Option<&mut HeaderMap<HeaderValue>>
获取请求的标头集的可变引用。
如果构建器有错误,则返回 None。
§例子
use boluo_core::http::HeaderValue;
use boluo_core::request::Request;
let mut req = Request::builder();
let headers = req.headers_mut().unwrap();
headers.insert("Accept", HeaderValue::from_static("text/html"));
headers.insert("X-Custom-Foo", HeaderValue::from_static("bar"));
let headers = req.headers_ref().unwrap();
assert_eq!(headers["Accept"], "text/html");
assert_eq!(headers["X-Custom-Foo"], "bar");Sourcepub fn extension<T>(self, extension: T) -> RequestBuilder
pub fn extension<T>(self, extension: T) -> RequestBuilder
将一个类型添加到请求的扩展中。
§例子
use boluo_core::request::Request;
let req = Request::builder()
.extension("My Extension")
.body(())
.unwrap();
assert_eq!(req.extensions().get::<&'static str>(),
Some(&"My Extension"));Sourcepub fn extensions_ref(&self) -> Option<&Extensions>
pub fn extensions_ref(&self) -> Option<&Extensions>
获取请求的扩展的引用。
如果构建器有错误,则返回 None。
§例子
use boluo_core::request::Request;
let req = Request::builder().extension("My Extension").extension(5u32);
let extensions = req.extensions_ref().unwrap();
assert_eq!(extensions.get::<&'static str>(), Some(&"My Extension"));
assert_eq!(extensions.get::<u32>(), Some(&5u32));Sourcepub fn extensions_mut(&mut self) -> Option<&mut Extensions>
pub fn extensions_mut(&mut self) -> Option<&mut Extensions>
获取请求的扩展的可变引用。
如果构建器有错误,则返回 None。
§例子
use boluo_core::request::Request;
let mut req = Request::builder().extension("My Extension");
let mut extensions = req.extensions_mut().unwrap();
assert_eq!(extensions.get::<&'static str>(), Some(&"My Extension"));
extensions.insert(5u32);
assert_eq!(extensions.get::<u32>(), Some(&5u32));Trait Implementations§
Source§impl Debug for RequestBuilder
impl Debug for RequestBuilder
Source§impl Default for RequestBuilder
impl Default for RequestBuilder
Source§fn default() -> RequestBuilder
fn default() -> RequestBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for RequestBuilder
impl !RefUnwindSafe for RequestBuilder
impl Send for RequestBuilder
impl Sync for RequestBuilder
impl Unpin for RequestBuilder
impl !UnwindSafe for RequestBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more