1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-01-18 05:41:50 +01:00
actix-web/actix-http
Peter Ding 64f603b076 Support to set header names of ClientRequest as Camel-Case (#713)
* Support to set header names of `ClientRequest` as Camel-Case

This is the case for supporting to request for servers which don't
perfectly implement the `RFC 7230`. It is important for an app
which uses `ClientRequest` as core part.

* Add field `upper_camel_case_headers` to `ClientRequest`.

* Add function `set_upper_camel_case_headers` to `ClientRequest`
  and `ClientRequestBuilder` to set field `upper_camel_case_headers`.

* Add trait `client::writer::UpperCamelCaseHeader` for
  `http::header::HeaderName`, let it can be converted to Camel-Case
  then writed to buffer.

* Add test `test_client::test_upper_camel_case_headers`.

* Support upper Camel-Case headers

* [actix-http] Add field `upper_camel_case_headers` for `RequestHead`
* [actix-http] Add code for `MessageType` to support upper camel case
* [awc] Add functions for `ClientRequest` to set upper camel case

* Use `Flags::CAMEL_CASE` for upper camel case of headers
2019-04-24 10:48:49 -07:00
..
2019-03-26 11:54:35 -07:00
2019-04-23 15:06:30 -07:00
2019-03-26 11:54:35 -07:00
2019-03-26 11:54:35 -07:00
2019-03-26 11:54:35 -07:00
2019-04-08 17:53:19 -07:00
2019-03-26 11:54:35 -07:00

Actix http Build Status codecov crates.io Join the chat at https://gitter.im/actix/actix

Actix http

Documentation & community resources

Example

// see examples/framed_hello.rs for complete list of used crates.
extern crate actix_http;
use actix_http::{h1, Response, ServiceConfig};

fn main() {
    Server::new().bind("framed_hello", "127.0.0.1:8080", || {
        IntoFramed::new(|| h1::Codec::new(ServiceConfig::default()))	// <- create h1 codec
            .and_then(TakeItem::new().map_err(|_| ()))	                // <- read one request
            .and_then(|(_req, _framed): (_, Framed<_, _>)| {	        // <- send response and close conn
                SendResponse::send(_framed, Response::Ok().body("Hello world!"))
                    .map_err(|_| ())
                    .map(|_| ())
            })
    }).unwrap().run();
}

License

This project is licensed under either of

at your option.

Code of Conduct

Contribution to the actix-http crate is organized under the terms of the Contributor Covenant, the maintainer of actix-http, @fafhrd91, promises to intervene to uphold that code of conduct.