@@ -24,28 +24,18 @@ public Task<GraphQLResponse<T>> ExecuteAsync<T>([StringSyntax("GraphQL")] string
2424
2525 public async Task < GraphQLResponse < T > > ExecuteAsync < T > ( GraphQLRequest request , GraphQLClientOptions options = null , CancellationToken cancellationToken = default )
2626 {
27- HttpRequestMessage CreateHttpRequest ( GraphQLRequest request , GraphQLClientOptions options )
28- {
29- var uri = options ? . Uri ?? _defaultOptions . Uri ;
30- var requestMessage = new HttpRequestMessage
31- {
32- Method = HttpMethod . Post ,
33- RequestUri = uri ,
34- Content = JsonContent . Create ( request , options : Serializer . Options ) ,
35- } ;
36-
37- requestMessage . Headers . UserAgent . Add ( _defaultUserAgent ) ;
38- _defaultOptions ? . ConfigureHttpRequestHeaders ? . Invoke ( requestMessage . Headers ) ;
39- options ? . ConfigureHttpRequestHeaders ? . Invoke ( requestMessage . Headers ) ;
40- return requestMessage ;
41- }
27+ var interceptor = options ? . Interceptor ?? _defaultOptions . Interceptor ?? NoOpInterceptor . Instance ;
28+ return await interceptor . InterceptRequestAsync ( request , async req => await ExecuteCoreAsync < T > ( req , options , cancellationToken ) , cancellationToken ) ;
29+ }
4230
31+ private async Task < GraphQLResponse < T > > ExecuteCoreAsync < T > ( GraphQLRequest request , GraphQLClientOptions options = null , CancellationToken cancellationToken = default )
32+ {
4333 HttpResponse httpResponse = null ;
4434 try
4535 {
46- var httpClient = options ? . HttpClient ?? _defaultOptions . HttpClient ?? _defaultHttpClient ;
4736 using HttpRequestMessage requestMessage = CreateHttpRequest ( request , options ) ;
4837
38+ var httpClient = options ? . HttpClient ?? _defaultOptions . HttpClient ?? _defaultHttpClient ;
4939 using var httpResponseMsg = await httpClient . SendAsync ( requestMessage , cancellationToken ) ;
5040 //httpResponseMsg needs to disposed so we create a small copy of basic information
5141 httpResponse = new HttpResponse ( httpResponseMsg ) ;
@@ -84,4 +74,20 @@ HttpRequestMessage CreateHttpRequest(GraphQLRequest request, GraphQLClientOption
8474 throw new GraphQLException ( request , httpResponse , $ "Unexpected GraphQL error: { request } ", ex ) ;
8575 }
8676 }
77+
78+ private HttpRequestMessage CreateHttpRequest ( GraphQLRequest request , GraphQLClientOptions options )
79+ {
80+ var uri = options ? . Uri ?? _defaultOptions . Uri ;
81+ var requestMessage = new HttpRequestMessage
82+ {
83+ Method = HttpMethod . Post ,
84+ RequestUri = uri ,
85+ Content = JsonContent . Create ( request , options : Serializer . Options ) ,
86+ } ;
87+
88+ requestMessage . Headers . UserAgent . Add ( _defaultUserAgent ) ;
89+ _defaultOptions ? . ConfigureHttpRequestHeaders ? . Invoke ( requestMessage . Headers ) ;
90+ options ? . ConfigureHttpRequestHeaders ? . Invoke ( requestMessage . Headers ) ;
91+ return requestMessage ;
92+ }
8793}
0 commit comments