File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed
src/System.Web.Http/Batch
test/System.Web.Http.Test/Batch Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -187,7 +187,7 @@ public virtual async Task<IList<HttpRequestMessage>> ParseBatchRequestsAsync(Htt
187187 foreach ( HttpContent httpContent in streamProvider . Contents )
188188 {
189189 cancellationToken . ThrowIfCancellationRequested ( ) ;
190- HttpRequestMessage innerRequest = await httpContent . ReadAsHttpRequestMessageAsync ( ) ;
190+ HttpRequestMessage innerRequest = request . RequestUri == null ? await httpContent . ReadAsHttpRequestMessageAsync ( ) : await httpContent . ReadAsHttpRequestMessageAsync ( request . RequestUri . Scheme ) ;
191191 innerRequest . CopyBatchRequestProperties ( request ) ;
192192 requests . Add ( innerRequest ) ;
193193 }
Original file line number Diff line number Diff line change @@ -281,6 +281,29 @@ public async Task ParseBatchRequestsAsync_Returns_RequestsFromMultipartContent()
281281 Assert . Equal ( "http://example.com/values" , requests [ 1 ] . RequestUri . AbsoluteUri ) ;
282282 }
283283
284+ [ Fact ]
285+ public async Task ParseBatchRequestsAsync_Returns_RequestsFromMultipartContent_WithUriSchemeSet_FromRequest ( )
286+ {
287+ DefaultHttpBatchHandler batchHandler = new DefaultHttpBatchHandler ( new HttpServer ( ) ) ;
288+ HttpRequestMessage request = new HttpRequestMessage
289+ {
290+ Content = new MultipartContent ( "mixed" )
291+ {
292+ new HttpMessageContent ( new HttpRequestMessage ( HttpMethod . Get , "http://example.com/" ) ) ,
293+ new HttpMessageContent ( new HttpRequestMessage ( HttpMethod . Post , "https://example.com/values" ) )
294+ } ,
295+ RequestUri = new Uri ( "https://example.com/" )
296+ } ;
297+
298+ IList < HttpRequestMessage > requests = await batchHandler . ParseBatchRequestsAsync ( request , CancellationToken . None ) ;
299+
300+ Assert . Equal ( 2 , requests . Count ) ;
301+ Assert . Equal ( HttpMethod . Get , requests [ 0 ] . Method ) ;
302+ Assert . Equal ( "https://example.com/" , requests [ 0 ] . RequestUri . AbsoluteUri ) ;
303+ Assert . Equal ( HttpMethod . Post , requests [ 1 ] . Method ) ;
304+ Assert . Equal ( "https://example.com/values" , requests [ 1 ] . RequestUri . AbsoluteUri ) ;
305+ }
306+
284307 [ Fact ]
285308 public async Task ParseBatchRequestsAsync_CopiesPropertiesFromRequest_WithoutExcludedProperties ( )
286309 {
You can’t perform that action at this time.
0 commit comments