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