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
187
187
foreach ( HttpContent httpContent in streamProvider . Contents )
188
188
{
189
189
cancellationToken . ThrowIfCancellationRequested ( ) ;
190
- HttpRequestMessage innerRequest = await httpContent . ReadAsHttpRequestMessageAsync ( ) ;
190
+ HttpRequestMessage innerRequest = request . RequestUri == null ? await httpContent . ReadAsHttpRequestMessageAsync ( ) : await httpContent . ReadAsHttpRequestMessageAsync ( request . RequestUri . Scheme ) ;
191
191
innerRequest . CopyBatchRequestProperties ( request ) ;
192
192
requests . Add ( innerRequest ) ;
193
193
}
Original file line number Diff line number Diff line change @@ -281,6 +281,29 @@ public async Task ParseBatchRequestsAsync_Returns_RequestsFromMultipartContent()
281
281
Assert . Equal ( "http://example.com/values" , requests [ 1 ] . RequestUri . AbsoluteUri ) ;
282
282
}
283
283
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
+
284
307
[ Fact ]
285
308
public async Task ParseBatchRequestsAsync_CopiesPropertiesFromRequest_WithoutExcludedProperties ( )
286
309
{
You can’t perform that action at this time.
0 commit comments