From 684754d8798ad10549ee8dcb85b9a4a8a5fa71be Mon Sep 17 00:00:00 2001 From: Marek Habersack Date: Fri, 8 Jul 2016 17:46:28 +0200 Subject: [PATCH] Fix public API break introduced in PR #92 One public method in AndroidClientHandler was modified and one public constructor removed from AndroidHttpResponseMessage. Putting them back requires restoring some of the previous async internal calls. --- .../Xamarin.Android.Net/AndroidClientHandler.cs | 14 +++++++------- .../AndroidHttpResponseMessage.cs | 3 +++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Mono.Android/Xamarin.Android.Net/AndroidClientHandler.cs b/src/Mono.Android/Xamarin.Android.Net/AndroidClientHandler.cs index 8e98b393f0c..d9dfc279178 100644 --- a/src/Mono.Android/Xamarin.Android.Net/AndroidClientHandler.cs +++ b/src/Mono.Android/Xamarin.Android.Net/AndroidClientHandler.cs @@ -168,7 +168,7 @@ protected void AssertSelf () /// Task in which the request is executed /// Request provided by /// Cancellation token. - protected override Task SendAsync (HttpRequestMessage request, CancellationToken cancellationToken) + protected override async Task SendAsync (HttpRequestMessage request, CancellationToken cancellationToken) { AssertSelf (); if (request == null) @@ -179,8 +179,8 @@ protected void AssertSelf () URL java_url = new URL (request.RequestUri.ToString ()); URLConnection java_connection = java_url.OpenConnection (); - HttpURLConnection httpConnection = SetupRequestInternal (request, java_connection); - return ProcessRequest (request, java_url, httpConnection, cancellationToken); + HttpURLConnection httpConnection = await SetupRequestInternal (request, java_connection); + return await ProcessRequest (request, java_url, httpConnection, cancellationToken); } Task ProcessRequest (HttpRequestMessage request, URL javaUrl, HttpURLConnection httpConnection, CancellationToken cancellationToken) @@ -361,9 +361,9 @@ void CopyHeaders (HttpURLConnection httpConnection, HttpResponseMessage response /// /// Request data /// Pre-configured connection instance - protected virtual void SetupRequest (HttpRequestMessage request, HttpURLConnection conn) + protected virtual Task SetupRequest (HttpRequestMessage request, HttpURLConnection conn) { - AssertSelf (); + return Task.Factory.StartNew (AssertSelf); } /// @@ -422,7 +422,7 @@ void AppendEncoding (string encoding, ref List list) list.Add (encoding); } - HttpURLConnection SetupRequestInternal (HttpRequestMessage request, URLConnection conn) + async Task SetupRequestInternal (HttpRequestMessage request, URLConnection conn) { if (conn == null) throw new ArgumentNullException (nameof (conn)); @@ -467,7 +467,7 @@ HttpURLConnection SetupRequestInternal (HttpRequestMessage request, URLConnectio } HandlePreAuthentication (httpConnection); - SetupRequest (request, httpConnection); + await SetupRequest (request, httpConnection); SetupRequestBody (httpConnection, request); return httpConnection; diff --git a/src/Mono.Android/Xamarin.Android.Net/AndroidHttpResponseMessage.cs b/src/Mono.Android/Xamarin.Android.Net/AndroidHttpResponseMessage.cs index 43a7953ef0e..b0f202802d7 100644 --- a/src/Mono.Android/Xamarin.Android.Net/AndroidHttpResponseMessage.cs +++ b/src/Mono.Android/Xamarin.Android.Net/AndroidHttpResponseMessage.cs @@ -20,6 +20,9 @@ public class AndroidHttpResponseMessage : HttpResponseMessage /// The requested authentication. public IList RequestedAuthentication { get; internal set; } + public AndroidHttpResponseMessage () + {} + public AndroidHttpResponseMessage (URL javaUrl, HttpURLConnection httpConnection) { javaUrl = javaUrl; httpConnection = httpConnection;