@@ -382,6 +382,37 @@ TEST_FIXTURE(uri_address, parsing_content_type_redundantsemicolon_string)
382382 auto resp = client.request (methods::GET).get ();
383383 VERIFY_ARE_EQUAL (resp.extract_string ().get (), utility::conversions::to_string_t (body));
384384}
385+
386+ TEST_FIXTURE (uri_address, overwrite_http_header)
387+ {
388+ test_http_server::scoped_server scoped (m_uri);
389+ http_client client (m_uri);
390+
391+ // Test default case of cpprestsdk setting host header as host:port
392+ auto & host = m_uri.host ();
393+ int port = m_uri.port ();
394+ utility::string_t expected_default_header = host + " :" + std::to_string (port);
395+ http_request default_host_headers_request (methods::GET);
396+ scoped.server ()->next_request ().then ([&](test_request *p_request)
397+ {
398+ auto headers = p_request->m_headers ;
399+ VERIFY_ARE_EQUAL (expected_default_header, headers[header_names::host]);
400+ p_request->reply (200 );
401+ });
402+
403+ client.request (default_host_headers_request).get ();
404+
405+ // Test case where we overwrite the host header
406+ http_request overwritten_host_headers_request (methods::GET);
407+ overwritten_host_headers_request.headers ().add (" Host" , host);
408+ scoped.server ()->next_request ().then ([&](test_request *p_request)
409+ {
410+ auto headers = p_request->m_headers ;
411+ VERIFY_ARE_EQUAL (host, headers[header_names::host]);
412+ p_request->reply (200 );
413+ });
414+ client.request (overwritten_host_headers_request).get ();
415+ }
385416} // SUITE(header_tests)
386417
387- }}}}
418+ }}}}
0 commit comments