SetBusy ();
async = false;
WebRequest request = SetupRequest (address, method, true);
- return request.GetRequestStream ();
+ return OpenWriteStream (request);
} catch (WebException) {
throw;
} catch (Exception ex) {
}
}
+ Stream OpenWriteStream (WebRequest request)
+ {
+ var stream = request.GetRequestStream ();
+ var wcs = stream as WebConnectionStream;
+ if (wcs != null)
+ wcs.GetResponseOnClose = true;
+ return stream;
+ }
+
private string DetermineMethod (Uri address, string method, bool is_upload)
{
if (method != null)
WebRequest request = null;
try {
request = SetupRequest ((Uri) args [0], (string) args [1], true);
- Stream stream = request.GetRequestStream ();
+ var stream = OpenWriteStream (request);
OnOpenWriteCompleted (
new OpenWriteCompletedEventArgs (stream, null, false, args [2]));
} catch (ThreadInterruptedException){
try {
SetBusy ();
cts = new CancellationTokenSource ();
- request = SetupRequest (address);
- return await request.GetRequestStreamAsync ().ConfigureAwait (false);
+ request = await SetupRequestAsync (address, method, true).ConfigureAwait (false);
+ var stream = await request.GetRequestStreamAsync ();
+ var wcs = stream as WebConnectionStream;
+ if (wcs != null)
+ wcs.GetResponseOnClose = true;
+ return stream;
} catch (WebException) {
throw;
} catch (OperationCanceledException) {