@@ -63,7 +63,7 @@ mod blocking {
6363 #[ cfg( feature = "reqwest-010" ) ]
6464 use reqwest_0_10:: blocking;
6565 #[ cfg( feature = "reqwest-010" ) ]
66- use reqwest_0_10:: RedirectPolicy ;
66+ use reqwest_0_10:: redirect :: Policy as RedirectPolicy ;
6767
6868 use std:: io:: Read ;
6969
@@ -76,23 +76,59 @@ mod blocking {
7676 . redirect ( RedirectPolicy :: none ( ) )
7777 . build ( )
7878 . map_err ( Error :: Reqwest ) ?;
79+
80+ #[ cfg( all( feature = "reqwest-09" , not( feature = "reqwest-010" ) ) ) ]
7981 let mut request_builder = client
8082 . request ( request. method , request. url . as_str ( ) )
8183 . body ( request. body ) ;
84+ #[ cfg( feature = "reqwest-010" ) ]
85+ let mut request_builder = client
86+ . request (
87+ http_0_2:: Method :: from_bytes ( request. method . as_str ( ) . as_ref ( ) )
88+ . expect ( "failed to convert Method from http 0.2 to 0.1" ) ,
89+ request. url . as_str ( ) ,
90+ )
91+ . body ( request. body ) ;
92+
8293 for ( name, value) in & request. headers {
83- request_builder = request_builder. header ( name, value) ;
94+ request_builder = request_builder. header ( name. as_str ( ) , value. as_bytes ( ) ) ;
8495 }
8596 let mut response = client
8697 . execute ( request_builder. build ( ) . map_err ( Error :: Reqwest ) ?)
8798 . map_err ( Error :: Reqwest ) ?;
8899
89100 let mut body = Vec :: new ( ) ;
90101 response. read_to_end ( & mut body) . map_err ( Error :: Io ) ?;
91- Ok ( HttpResponse {
92- status_code : response. status ( ) ,
93- headers : response. headers ( ) . clone ( ) ,
94- body,
95- } )
102+
103+ #[ cfg( all( feature = "reqwest-09" , not( feature = "reqwest-010" ) ) ) ]
104+ {
105+ Ok ( HttpResponse {
106+ status_code : response. status ( ) ,
107+ headers : response. headers ( ) . clone ( ) ,
108+ body,
109+ } )
110+ }
111+ #[ cfg( feature = "reqwest-010" ) ]
112+ {
113+ let headers = response
114+ . headers ( )
115+ . iter ( )
116+ . map ( |( name, value) | {
117+ (
118+ http:: header:: HeaderName :: from_bytes ( name. as_str ( ) . as_ref ( ) )
119+ . expect ( "failed to convert HeaderName from http 0.2 to 0.1" ) ,
120+ http:: HeaderValue :: from_bytes ( value. as_bytes ( ) )
121+ . expect ( "failed to convert HeaderValue from http 0.2 to 0.1" ) ,
122+ )
123+ } )
124+ . collect :: < http:: HeaderMap > ( ) ;
125+ Ok ( HttpResponse {
126+ status_code : http:: StatusCode :: from_u16 ( response. status ( ) . as_u16 ( ) )
127+ . expect ( "failed to convert StatusCode from http 0.2 to 0.1" ) ,
128+ headers,
129+ body,
130+ } )
131+ }
96132 }
97133}
98134
0 commit comments