@@ -24,11 +24,12 @@ public sealed class XmlHttpRequest : XmlHttpRequestEventTarget
24
24
{
25
25
#region Fields
26
26
27
+ const Int32 BufferSize = 16384 ;
28
+
27
29
readonly Dictionary < String , String > _headers ;
28
30
readonly IWindow _window ;
29
31
readonly CancellationTokenSource _cancel ;
30
32
31
- DocumentRequest _request ;
32
33
RequesterState _readyState ;
33
34
Int32 _timeout ;
34
35
Boolean _credentials ;
@@ -343,11 +344,9 @@ async Task Receive(IDocumentLoader loader, DocumentRequest request, Cancellation
343
344
{
344
345
try
345
346
{
346
- var response = await loader . LoadAsync ( request , cancel ) . ConfigureAwait ( false ) ;
347
-
348
- if ( response != null )
347
+ using ( var response = await loader . LoadAsync ( request , cancel ) . ConfigureAwait ( false ) )
349
348
{
350
- using ( response )
349
+ if ( response != null )
351
350
{
352
351
foreach ( var header in response . Headers )
353
352
_headers [ header . Key ] = header . Value ;
@@ -358,22 +357,18 @@ async Task Receive(IDocumentLoader loader, DocumentRequest request, Cancellation
358
357
359
358
using ( var ms = new MemoryStream ( ) )
360
359
{
361
- await response . Content . CopyToAsync ( ms , 16384 , cancel ) . ConfigureAwait ( false ) ;
360
+ await response . Content . CopyToAsync ( ms , BufferSize , cancel ) . ConfigureAwait ( false ) ;
362
361
ms . Seek ( 0 , SeekOrigin . Begin ) ;
363
362
364
363
using ( var reader = new StreamReader ( ms ) )
365
364
_responseText = reader . ReadToEnd ( ) ;
366
365
}
366
+
367
+ Fire ( LoadEndEvent ) ;
367
368
}
368
369
369
- Fire ( LoadEndEvent ) ;
370
- ReadyState = RequesterState . Done ;
371
- Fire ( LoadEvent ) ;
372
- }
373
- else
374
- {
375
370
ReadyState = RequesterState . Done ;
376
- Fire ( ErrorEvent ) ;
371
+ Fire ( response == null ? ErrorEvent : LoadEvent ) ;
377
372
}
378
373
}
379
374
catch ( TaskCanceledException )
0 commit comments