@@ -38,9 +38,11 @@ protected CatResponse<TCatRecord> DoCat<TRequest, TParams, TCatRecord>(TRequest
3838 where TRequest : class , IRequest < TParams >
3939 {
4040 if ( typeof ( TCatRecord ) == typeof ( CatHelpRecord ) )
41+ {
4142 request . RequestParameters . CustomResponseBuilder = CatHelpResponseBuilder . Instance ;
42- else
43- request . RequestParameters . CustomResponseBuilder = CatResponseBuilder < TCatRecord > . Instance ;
43+ return DoRequest < TRequest , CatResponse < TCatRecord > > ( request , request . RequestParameters , r => ElasticClient . ForceTextPlain ( r ) ) ;
44+ }
45+ request . RequestParameters . CustomResponseBuilder = CatResponseBuilder < TCatRecord > . Instance ;
4446 return DoRequest < TRequest , CatResponse < TCatRecord > > ( request , request . RequestParameters , r => ElasticClient . ForceJson ( r ) ) ;
4547 }
4648
@@ -50,9 +52,11 @@ protected Task<CatResponse<TCatRecord>> DoCatAsync<TRequest, TParams, TCatRecord
5052 where TRequest : class , IRequest < TParams >
5153 {
5254 if ( typeof ( TCatRecord ) == typeof ( CatHelpRecord ) )
55+ {
5356 request . RequestParameters . CustomResponseBuilder = CatHelpResponseBuilder . Instance ;
54- else
55- request . RequestParameters . CustomResponseBuilder = CatResponseBuilder < TCatRecord > . Instance ;
57+ return DoRequestAsync < TRequest , CatResponse < TCatRecord > > ( request , request . RequestParameters , ct , r => ElasticClient . ForceTextPlain ( r ) ) ;
58+ }
59+ request . RequestParameters . CustomResponseBuilder = CatResponseBuilder < TCatRecord > . Instance ;
5660 return DoRequestAsync < TRequest , CatResponse < TCatRecord > > ( request , request . RequestParameters , ct , r => ElasticClient . ForceJson ( r ) ) ;
5761 }
5862
@@ -103,6 +107,7 @@ internal TResponse DoRequest<TRequest, TResponse>(TRequest p, IRequestParameters
103107 where TResponse : class , IElasticsearchResponse , new ( )
104108 {
105109 if ( forceConfiguration != null ) ForceConfiguration ( p , forceConfiguration ) ;
110+ if ( p . ContentType != null ) ForceContentType ( p , p . ContentType ) ;
106111
107112 var url = p . GetUrl ( ConnectionSettings ) ;
108113 var b = ( p . HttpMethod == HttpMethod . GET || p . HttpMethod == HttpMethod . HEAD ) ? null : new SerializableData < TRequest > ( p ) ;
@@ -120,6 +125,7 @@ internal Task<TResponse> DoRequestAsync<TRequest, TResponse>(
120125 where TResponse : class , IElasticsearchResponse , new ( )
121126 {
122127 if ( forceConfiguration != null ) ForceConfiguration ( p , forceConfiguration ) ;
128+ if ( p . ContentType != null ) ForceContentType ( p , p . ContentType ) ;
123129
124130 var url = p . GetUrl ( ConnectionSettings ) ;
125131 var b = ( p . HttpMethod == HttpMethod . GET || p . HttpMethod == HttpMethod . HEAD ) ? null : new SerializableData < TRequest > ( p ) ;
@@ -130,16 +136,29 @@ internal Task<TResponse> DoRequestAsync<TRequest, TResponse>(
130136 private static void ForceConfiguration ( IRequest request , Action < IRequestConfiguration > forceConfiguration )
131137 {
132138 if ( forceConfiguration == null ) return ;
139+
133140 var configuration = request . RequestParameters . RequestConfiguration ?? new RequestConfiguration ( ) ;
134141 forceConfiguration ( configuration ) ;
135142 request . RequestParameters . RequestConfiguration = configuration ;
136143 }
144+ private void ForceContentType < TRequest > ( TRequest request , string contentType ) where TRequest : class , IRequest
145+ {
146+ var configuration = request . RequestParameters . RequestConfiguration ?? new RequestConfiguration ( ) ;
147+ configuration . Accept = contentType ;
148+ configuration . ContentType = contentType ;
149+ request . RequestParameters . RequestConfiguration = configuration ;
150+ }
137151
138152 internal static void ForceJson ( IRequestConfiguration requestConfiguration )
139153 {
140154 requestConfiguration . Accept = RequestData . MimeType ;
141155 requestConfiguration . ContentType = RequestData . MimeType ;
142156 }
157+ internal static void ForceTextPlain ( IRequestConfiguration requestConfiguration )
158+ {
159+ requestConfiguration . Accept = RequestData . MimeTypeTextPlain ;
160+ requestConfiguration . ContentType = RequestData . MimeTypeTextPlain ;
161+ }
143162
144163 internal IRequestParameters ResponseBuilder ( SourceRequestParameters parameters , CustomResponseBuilderBase builder )
145164 {
0 commit comments