@@ -97,14 +97,18 @@ private async Task<string> FormatAsyncInternal<T>(T request, CancellationToken c
9797
9898 var json = JsonSerializer . Serialize ( request , _serializerOptions ) ;
9999 var uri = await GetServiceUri ( request , cancellationToken ) ;
100-
100+
101101 using ( var content = new StringContent ( json , Encoding . UTF8 , MediaTypeNamesApplicationJson ) )
102102 using ( var response = await _httpClient . PostAsync ( uri , content , cancellationToken ) )
103- using ( var stream = await response . Content . ReadAsStreamAsync ( ) )
104- using ( var reader = new StreamReader ( stream ) )
105103 {
106- var message = reader . ReadToEnd ( ) ;
107- return message ;
104+ response . EnsureSuccessStatusCode ( ) ;
105+
106+ using ( var stream = await response . Content . ReadAsStreamAsync ( ) )
107+ using ( var reader = new StreamReader ( stream ) )
108+ {
109+ var message = reader . ReadToEnd ( ) ;
110+ return message ;
111+ }
108112 }
109113 }
110114
@@ -140,7 +144,17 @@ async Task InitializeSingleServiceUriAsync()
140144 {
141145 using ( var response = await _httpClient . GetAsync ( request . DaxTextFormatUri , HttpCompletionOption . ResponseHeadersRead , cancellationToken ) )
142146 {
143- var uri = _locationChangedStatusCodes . Contains ( response . StatusCode ) ? response . Headers . Location : request . DaxTextFormatUri ;
147+ var uri = request . DaxTextFormatUri ;
148+
149+ if ( _locationChangedStatusCodes . Contains ( response . StatusCode ) )
150+ {
151+ uri = response . Headers . Location ;
152+ }
153+ else
154+ {
155+ response . EnsureSuccessStatusCode ( ) ;
156+ }
157+
144158 Interlocked . CompareExchange ( ref _daxTextFormatSingleServiceUri , uri , default ) ;
145159 }
146160 }
@@ -163,7 +177,17 @@ async Task InitializeMultiServiceUriAsync()
163177 {
164178 using ( var response = await _httpClient . GetAsync ( request . DaxTextFormatUri , HttpCompletionOption . ResponseHeadersRead , cancellationToken ) )
165179 {
166- var uri = _locationChangedStatusCodes . Contains ( response . StatusCode ) ? response . Headers . Location : request . DaxTextFormatUri ;
180+ var uri = request . DaxTextFormatUri ;
181+
182+ if ( _locationChangedStatusCodes . Contains ( response . StatusCode ) )
183+ {
184+ uri = response . Headers . Location ;
185+ }
186+ else
187+ {
188+ response . EnsureSuccessStatusCode ( ) ;
189+ }
190+
167191 Interlocked . CompareExchange ( ref _daxTextFormatMultiServiceUri , uri , default ) ;
168192 }
169193 }
0 commit comments