Struct esp_idf_svc::http::server::EspHttpConnection

source ·
pub struct EspHttpConnection<'a> { /* private fields */ }

Implementations§

source§

impl<'a> EspHttpConnection<'a>

Represents the two-way connection between an HTTP request and its response.

source

pub fn uri(&self) -> &str

source

pub fn method(&self) -> Method

source

pub fn header(&self, name: &str) -> Option<&str>

source

pub fn split(&mut self) -> (&EspHttpConnection<'a>, &mut Self)

source

pub fn initiate_response( &mut self, status: u16, message: Option<&str>, headers: &[(&str, &str)], ) -> Result<(), EspError>

Sends the HTTP status (e.g. “200 OK”) and the response headers to the HTTP client.

source

pub fn is_response_initiated(&self) -> bool

Returns true if the response headers have been sent to the HTTP client.

source

pub fn read(&mut self, buf: &mut [u8]) -> Result<usize, EspError>

Reads bytes from the body of the HTTP request.

This is typically used whenever the HTTP server has to parse the body of an HTTP POST request.

server.fn_handler("/foo", Method::Post, move |mut request| {
    let (_headers, connection) = request.split();
    let mut buffer: [u8; 1024] = [0; 1024];
    let bytes_read = connection.read(&mut buffer)?;

    let my_data = MyDataStruct::from_bytes(&buffer[0..bytes_read]);
    // etc
source

pub fn write(&mut self, buf: &[u8]) -> Result<usize, EspError>

Sends bytes back to the HTTP client; returns the number of bytes sent.

source

pub fn write_all(&mut self, buf: &[u8]) -> Result<(), EspError>

source

pub fn raw_connection( &mut self, ) -> Result<&mut EspHttpRawConnection<'a>, EspError>

Trait Implementations§

source§

impl<'b> Connection for EspHttpConnection<'b>

§

type Headers = EspHttpConnection<'b>

§

type Read = EspHttpConnection<'b>

§

type RawConnectionError = EspIOError

§

type RawConnection = EspHttpRawConnection<'b>

source§

fn split(&mut self) -> (&Self::Headers, &mut Self::Read)

source§

fn initiate_response<'a>( &'a mut self, status: u16, message: Option<&'a str>, headers: &'a [(&'a str, &'a str)], ) -> Result<(), Self::Error>

source§

fn is_response_initiated(&self) -> bool

source§

fn raw_connection(&mut self) -> Result<&mut Self::RawConnection, Self::Error>

source§

impl<'a> ErrorType for EspHttpConnection<'a>

§

type Error = EspIOError

Error type of all the IO operations on this type.
source§

impl<'a> Headers for EspHttpConnection<'a>

source§

fn header(&self, name: &str) -> Option<&str>

source§

fn content_type(&self) -> Option<&str>

source§

fn content_len(&self) -> Option<u64>

source§

fn content_encoding(&self) -> Option<&str>

source§

fn transfer_encoding(&self) -> Option<&str>

source§

fn host(&self) -> Option<&str>

source§

fn connection(&self) -> Option<&str>

source§

fn cache_control(&self) -> Option<&str>

source§

fn upgrade(&self) -> Option<&str>

source§

impl<'a> Query for EspHttpConnection<'a>

source§

fn uri(&self) -> &str

source§

fn method(&self) -> Method

source§

impl<'a> RawHandle for EspHttpConnection<'a>

§

type Handle = *mut httpd_req

source§

fn handle(&self) -> Self::Handle

Care should be taken to use the returned ESP-IDF driver raw handle only while the driver is still alive, so as to avoid use-after-free errors.
source§

impl<'a> Read for EspHttpConnection<'a>

source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>

Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
source§

fn read_exact( &mut self, buf: &mut [u8], ) -> Result<(), ReadExactError<Self::Error>>

Read the exact number of bytes required to fill buf. Read more
source§

impl<'a> Write for EspHttpConnection<'a>

source§

fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>

Write a buffer into this writer, returning how many bytes were written. Read more
source§

fn flush(&mut self) -> Result<(), Self::Error>

Flush this output stream, blocking until all intermediately buffered contents reach their destination.
source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error>

Write an entire buffer into this writer. Read more
source§

fn write_fmt( &mut self, fmt: Arguments<'_>, ) -> Result<(), WriteFmtError<Self::Error>>

Write a formatted string into this writer, returning any error encountered. Read more

Auto Trait Implementations§

§

impl<'a> !Freeze for EspHttpConnection<'a>

§

impl<'a> !RefUnwindSafe for EspHttpConnection<'a>

§

impl<'a> !Send for EspHttpConnection<'a>

§

impl<'a> !Sync for EspHttpConnection<'a>

§

impl<'a> Unpin for EspHttpConnection<'a>

§

impl<'a> !UnwindSafe for EspHttpConnection<'a>

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.