@@ -488,6 +488,42 @@ AvLsTlswO+wDLXM1DoKxzFBZL5o8927niqW+vZpzyGc1uPmC1MG7+MDKdZsR+e+9
488488XzJTD4slrGSJrcpLt/g/Jqqdjg==
489489-----END PRIVATE KEY-----
490490 )" ;
491+
492+ auto body = utility::string_t {U (" body content" )};
493+ http_headers all_headers;
494+ all_headers.add (U (" Accept" ), U (" text/plain" ));
495+ all_headers.add (U (" Accept-Charset" ), U (" utf-8" ));
496+ all_headers.add (U (" Accept-Encoding" ), U (" gzip, deflate" ));
497+ all_headers.add (U (" Accept-Language" ), U (" en-US" ));
498+ all_headers.add (U (" Accept-Datetime" ), U (" Thu, 31 May 2007 20:35:00 GMT" ));
499+ all_headers.add (U (" Authorization" ), U (" Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" ));
500+ all_headers.add (U (" Cache-Control" ), U (" no-cache" ));
501+ all_headers.add (U (" Cookie" ), U (" $Version=1; Skin=new;" ));
502+ all_headers.add (U (" Content-Length" ), body.size ());
503+ all_headers.add (U (" Content-MD5" ), U (" Q2hlY2sgSW50ZWdyaXR5IQ==" ));
504+ all_headers.add (U (" Content-Type" ), U (" application/x-www-form-urlencoded" ));
505+ all_headers.add (U (" Date" ), U (" Tue, 15 Nov 1994 08:12:31 GMT" ));
506+ all_headers.add (U (" Expect" ), U (" 100-continue" ));
507+ all_headers.add (U (" Forwarded" ), U (" for=192.0.2.60;proto=http;by=203.0.113.43Forwarded: for=192.0.2.43, for=198.51.100.17" ));
508+ all_headers.
add (
U (
" From" ),
U (
" [email protected] " ));
509+ all_headers.add (U (" Host" ), U (" en.wikipedia.org" ));
510+ all_headers.add (U (" If-Match" ), U (" \" 737060cd8c284d8af7ad3082f209582d\" " ));
511+ all_headers.add (U (" If-Modified-Since" ), U (" Sat, 29 Oct 1994 19:43:31 GMT" ));
512+ all_headers.add (U (" If-None-Match" ), U (" \" 737060cd8c284d8af7ad3082f209582d\" " ));
513+ all_headers.add (U (" If-Range" ), U (" \" 737060cd8c284d8af7ad3082f209582d\" " ));
514+ all_headers.add (U (" If-Unmodified-Since" ), U (" Sat, 29 Oct 1994 19:43:31 GMT" ));
515+ all_headers.add (U (" Max-Forwards" ), U (" 10" ));
516+ all_headers.add (U (" Origin" ), U (" http://www.example-social-network.com" ));
517+ all_headers.add (U (" Pragma" ), U (" no-cache" ));
518+ all_headers.add (U (" Proxy-Authorization" ), U (" Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" ));
519+ all_headers.add (U (" Range" ), U (" bytes=500-999" ));
520+ all_headers.add (U (" Referer" ), U (" http://en.wikipedia.org/wiki/Main_Page" ));
521+ all_headers.add (U (" TE" ), U (" trailers, deflate" ));
522+ all_headers.add (U (" User-Agent" ), U (" Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0" ));
523+ all_headers.add (U (" Upgrade" ), U (" HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11" ));
524+ all_headers.add (U (" Via" ), U (" 1.0 fred, 1.1 example.com (Apache/1.1)" ));
525+ all_headers.add (U (" Warning" ), U (" 199 Miscellaneous warning" ));
526+
491527 boost::asio::const_buffer cert (self_signed_cert, std::strlen (self_signed_cert));
492528 boost::asio::const_buffer key (private_key, std::strlen (private_key));
493529
@@ -503,9 +539,19 @@ XzJTD4slrGSJrcpLt/g/Jqqdjg==
503539 http_listener listener (m_secure_uri, server_config);
504540
505541 listener.support (methods::GET,
506- [](http_request request)
542+ [& ](http_request request)
507543 {
508544 http_asserts::assert_request_equals (request, methods::GET, U (" /" ));
545+
546+ for (auto && h : all_headers)
547+ {
548+ std::cout << " HEADER - " << h.first << " : " << h.second << std::endl;
549+ VERIFY_IS_TRUE (request.headers ().has (h.first ));
550+ VERIFY_ARE_EQUAL (h.second , request.headers ().find (h.first )->second );
551+ }
552+
553+ VERIFY_ARE_EQUAL (body, request.extract_string (true ).get ());
554+
509555 request.reply (status_codes::OK);
510556 });
511557
@@ -522,6 +568,9 @@ XzJTD4slrGSJrcpLt/g/Jqqdjg==
522568 http_request msg (methods::GET);
523569 msg.set_request_uri (U (" /" ));
524570
571+ msg.headers () = all_headers;
572+ msg.set_body (body);
573+
525574 http_asserts::assert_response_equals (client.request (msg).get (), status_codes::OK);
526575
527576 listener.close ().wait ();
0 commit comments