Skip to content

Commit 3a22a86

Browse files
Added HttpResponse.EnsureSuccessStatusCode check (#9)
1 parent c7ff196 commit 3a22a86

1 file changed

Lines changed: 31 additions & 7 deletions

File tree

src/Dax.Formatter/Client/Http/DaxFormatterHttpClient.cs

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)