pub struct Response { /* private fields */ }Expand description
HTTP response.
Implementations§
Source§impl Response
impl Response
Sourcepub fn from_read(
status: StatusCode,
header: HeaderMap,
effective_uri: Uri,
metrics: Var<Metrics>,
read: Box<dyn AsyncRead + Send>,
) -> Self
pub fn from_read( status: StatusCode, header: HeaderMap, effective_uri: Uri, metrics: Var<Metrics>, read: Box<dyn AsyncRead + Send>, ) -> Self
New with body download pending or ongoing.
Sourcepub fn from_done(
status: StatusCode,
headers: HeaderMap,
effective_uri: Uri,
metrics: Metrics,
body: IpcBytes,
) -> Self
pub fn from_done( status: StatusCode, headers: HeaderMap, effective_uri: Uri, metrics: Metrics, body: IpcBytes, ) -> Self
New with body already downloaded.
Sourcepub fn from_msg(status: StatusCode, msg: impl ToTxt) -> Self
pub fn from_msg(status: StatusCode, msg: impl ToTxt) -> Self
New with status and message body.
Sourcepub fn status(&self) -> StatusCode
pub fn status(&self) -> StatusCode
Returns the StatusCode.
Sourcepub fn effective_uri(&self) -> &Uri
pub fn effective_uri(&self) -> &Uri
Get the effective URI of this response. This value differs from the original URI provided when making the request if at least one redirect was followed.
Sourcepub fn content_len(&self) -> Option<ByteLength>
pub fn content_len(&self) -> Option<ByteLength>
Get the body bytes length if it is downloaded or Content-Length value if it is present in the headers.
Sourcepub async fn body(&mut self) -> Result<IpcBytes, Error>
pub async fn body(&mut self) -> Result<IpcBytes, Error>
Download the full body memory cache and returns a reference to it.
Sourcepub async fn body_text(&mut self) -> Result<Txt, Error>
pub async fn body_text(&mut self) -> Result<Txt, Error>
Download the full body to memory and decode a clone to text.
The text encoding is guessed from header "content-type" and BOM sniffing, otherwise
utf-8 is assumed and the replacement character (U+FFFD) is used for invalid chars.
Sourcepub async fn body_json<O>(&mut self) -> Result<O, Error>where
O: DeserializeOwned + Unpin,
pub async fn body_json<O>(&mut self) -> Result<O, Error>where
O: DeserializeOwned + Unpin,
Download the full body to memory and deserialize it from JSON.
Sourcepub fn take_stream(&mut self) -> Box<dyn AsyncRead + Send>
pub fn take_stream(&mut self) -> Box<dyn AsyncRead + Send>
Take the body stream.
After this call the body_* methods will return empty.
If the body was already downloaded reads that data from the start.
Note that the metrics var will continue updating for the stream.
Sourcepub fn stream_decode(&mut self) -> impl AsyncRead + Send + 'static
pub fn stream_decode(&mut self) -> impl AsyncRead + Send + 'static
Take the body stream and decodes it to UTF-8.
The text encoding is guessed from header "content-type" and BOM sniffing, otherwise
utf-8 is assumed and the replacement character (U+FFFD) is used for invalid chars.
Sourcepub fn on_sse<F>(
&mut self,
handler: impl FnMut(Result<SseArgs<'_>, SseDisconnected<'_>>) -> F + Send + 'static,
)
pub fn on_sse<F>( &mut self, handler: impl FnMut(Result<SseArgs<'_>, SseDisconnected<'_>>) -> F + Send + 'static, )
Take the body stream and decode Server-Sent Events (SSE).
The handler is called for each SseArgs and once at the end with SseDisconnected.
The handler is dropped after disconnect, the caller must make a new request to retry if desired.
If the handler returns false it is dropped and disconnected.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Response
impl !RefUnwindSafe for Response
impl !Sync for Response
impl !Unpin for Response
impl !UnwindSafe for Response
impl Send for Response
impl UnsafeUnpin for Response
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more