22using System . Collections . Concurrent ;
33using System . Diagnostics ;
44using System . Net . Http ;
5+ using System . Net . Http . Headers ;
56using System . Text ;
67using System . Threading ;
78using System . Threading . Tasks ;
@@ -64,10 +65,11 @@ public GraphQLHttpClient(GraphQLHttpClientOptions options, HttpClient httpClient
6465 #region IGraphQLClient
6566
6667 /// <inheritdoc />
67- public Task < GraphQLResponse < TResponse > > SendQueryAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
68- return Options . UseWebSocketForQueriesAndMutations
69- ? this . graphQlHttpWebSocket . SendRequest < TResponse > ( request , cancellationToken )
70- : this . SendHttpPostRequestAsync < TResponse > ( request , cancellationToken ) ;
68+ public async Task < GraphQLResponse < TResponse > > SendQueryAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
69+ if ( Options . UseWebSocketForQueriesAndMutations )
70+ return await this . graphQlHttpWebSocket . SendRequest < TResponse > ( request , cancellationToken ) ;
71+
72+ return await this . SendHttpPostRequestAsync < TResponse > ( request , cancellationToken ) ;
7173 }
7274
7375 /// <inheritdoc />
@@ -113,10 +115,10 @@ public IObservable<GraphQLResponse<TResponse>> CreateSubscriptionStream<TRespons
113115 /// </summary>
114116 /// <returns></returns>
115117 public Task InitializeWebsocketConnection ( ) => graphQlHttpWebSocket . InitializeWebSocket ( ) ;
116-
118+
117119 #region Private Methods
118120
119- private async Task < GraphQLResponse < TResponse > > SendHttpPostRequestAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
121+ private async Task < GraphQLHttpResponse < TResponse > > SendHttpPostRequestAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default ) {
120122 var preprocessedRequest = await Options . PreprocessRequest ( request , this ) ;
121123 using var httpRequestMessage = this . GenerateHttpRequestMessage ( preprocessedRequest ) ;
122124 using var httpResponseMessage = await this . HttpClient . SendAsync ( httpRequestMessage , cancellationToken ) ;
@@ -125,7 +127,8 @@ private async Task<GraphQLResponse<TResponse>> SendHttpPostRequestAsync<TRespons
125127 }
126128
127129 var bodyStream = await httpResponseMessage . Content . ReadAsStreamAsync ( ) ;
128- return await JsonSerializer . DeserializeFromUtf8StreamAsync < TResponse > ( bodyStream , cancellationToken ) ;
130+ var response = await JsonSerializer . DeserializeFromUtf8StreamAsync < TResponse > ( bodyStream , cancellationToken ) ;
131+ return response . ToGraphQLHttpResponse ( httpResponseMessage . Headers , httpResponseMessage . StatusCode ) ;
129132 }
130133
131134 private HttpRequestMessage GenerateHttpRequestMessage ( GraphQLRequest request ) {
0 commit comments