From 101581d10c2abead2281d1b9f6a9adf3df4f45a2 Mon Sep 17 00:00:00 2001 From: fannydengdeng Date: Mon, 20 Sep 2021 12:25:38 -0700 Subject: [PATCH 1/2] Override abstract fields in HttpClientRequestMessage --- .../Handlers/HttpClientRequestMessage.cs | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs b/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs index 56e1429..8d07a36 100644 --- a/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs +++ b/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs @@ -151,6 +151,41 @@ public override ICredentials Credentials } } +#if !ASTORIA_LIGHT && !PORTABLELIB + /// + /// Gets or sets the timeout (in seconds) for this request. + /// + public override int Timeout + { + get + { + return (int)this.client.Timeout.TotalSeconds; + } + set + { + this.client.Timeout = new TimeSpan(0, 0, value); + } + } +#endif + +#if !ASTORIA_LIGHT && !PORTABLELIB + /// + /// Gets or sets a value that indicates whether to send data in segments to the Internet resource. + /// + public override bool SendChunked + { + get + { + bool? transferEncodingChunked = this.requestMessage.Headers.TransferEncodingChunked; + return transferEncodingChunked.HasValue && transferEncodingChunked.Value; + } + set + { + this.requestMessage.Headers.TransferEncodingChunked = value; + } + } +#endif + /// /// Returns the value of the header with the given name. /// @@ -255,6 +290,22 @@ public override IODataResponseMessage EndGetResponse(IAsyncResult asyncResult) return UnwrapAggregateException(() => new HttpClientResponseMessage(((Task)asyncResult).Result, this.config)); } +#if !ASTORIA_LIGHT && !PORTABLELIB + /// + /// Returns a response from an Internet resource. + /// + /// A System.Net.WebResponse that contains the response from the Internet resource. + public override IODataResponseMessage GetResponse() + { + return UnwrapAggregateException(() => + { + var send = CreateSendTask(); + send.Wait(); + return new HttpClientResponseMessage(send.Result, this.config); + }); + } +#endif + private Task CreateSendTask() { // Only set the message content if the stream has been written to, otherwise From 1690f701e528aaf44f030f555e183753e740499d Mon Sep 17 00:00:00 2001 From: fannydengdeng Date: Mon, 20 Sep 2021 13:18:21 -0700 Subject: [PATCH 2/2] same if --- .../Internals/Handlers/HttpClientRequestMessage.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs b/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs index 8d07a36..3954916 100644 --- a/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs +++ b/src/Microsoft.OData.Extensions.Client/Internals/Handlers/HttpClientRequestMessage.cs @@ -166,9 +166,7 @@ public override int Timeout this.client.Timeout = new TimeSpan(0, 0, value); } } -#endif -#if !ASTORIA_LIGHT && !PORTABLELIB /// /// Gets or sets a value that indicates whether to send data in segments to the Internet resource. ///