Function esp_idf_svc::sys::httpd_req_get_url_query_str

source ·
pub unsafe extern "C" fn httpd_req_get_url_query_str(
    r: *mut httpd_req,
    buf: *mut i8,
    buf_len: usize,
) -> i32
Expand description

@brief Get Query string from the request URL

@note

  • Presently, the user can fetch the full URL query string, but decoding will have to be performed by the user. Request headers can be read using httpd_req_get_hdr_value_str() to know the ‘Content-Type’ (eg. Content-Type: application/x-www-form-urlencoded) and then the appropriate decoding algorithm needs to be applied.
  • This API is supposed to be called only from the context of a URI handler where httpd_req_t* request pointer is valid
  • If output size is greater than input, then the value is truncated, accompanied by truncation error as return value
  • Prior to calling this function, one can use httpd_req_get_url_query_len() to know the query string length beforehand and hence allocate the buffer of right size (usually query string length + 1 for null termination) for storing the query string

@param[in] r The request being responded to @param[out] buf Pointer to the buffer into which the query string will be copied (if found) @param[in] buf_len Length of output buffer

@return

  • ESP_OK : Query is found in the request URL and copied to buffer
  • ESP_ERR_NOT_FOUND : Query not found
  • ESP_ERR_INVALID_ARG : Null arguments
  • ESP_ERR_HTTPD_INVALID_REQ : Invalid HTTP request pointer
  • ESP_ERR_HTTPD_RESULT_TRUNC : Query string truncated