6
6
using System . Net ;
7
7
using System . Net . Http ;
8
8
using System . Net . Http . Headers ;
9
+ using System . Text ;
9
10
using System . Threading ;
10
11
using System . Threading . Tasks ;
11
12
@@ -22,32 +23,49 @@ public void GlobalSetup()
22
23
{
23
24
var services = new ServiceCollection ( ) ;
24
25
services
25
- . AddHttpApi < IWebApiClientCoreApi > ( o =>
26
+ . AddHttpApi < IWebApiClientCoreJsonApi > ( o =>
26
27
{
27
28
o . UseParameterPropertyValidate = false ;
28
29
o . UseReturnValuePropertyValidate = false ;
29
30
} )
30
- . AddHttpMessageHandler ( ( ) => new UserResponseHandler ( ) )
31
+ . AddHttpMessageHandler ( ( ) => new JsonResponseHandler ( ) )
31
32
. ConfigureHttpClient ( c => c . BaseAddress = new Uri ( "http://webapiclient.com/" ) ) ;
32
33
33
34
services
34
- . AddRefitClient < IRefitApi > ( new RefitSettings
35
+ . AddHttpApi < IWebApiClientCoreXmlApi > ( o =>
35
36
{
37
+ o . UseParameterPropertyValidate = false ;
38
+ o . UseReturnValuePropertyValidate = false ;
39
+ } )
40
+ . AddHttpMessageHandler ( ( ) => new XmlResponseHandler ( ) )
41
+ . ConfigureHttpClient ( c => c . BaseAddress = new Uri ( "http://webapiclient.com/" ) ) ;
42
+
43
+ services
44
+ . AddRefitClient < IRefitJsonApi > ( new RefitSettings
45
+ {
46
+ } )
47
+ . AddHttpMessageHandler ( ( ) => new JsonResponseHandler ( ) )
48
+ . ConfigureHttpClient ( c => c . BaseAddress = new Uri ( "http://webapiclient.com/" ) ) ;
49
+
50
+ services
51
+ . AddRefitClient < IRefitXmlApi > ( new RefitSettings
52
+ {
53
+ ContentSerializer = new XmlContentSerializer ( )
36
54
} )
37
- . AddHttpMessageHandler ( ( ) => new UserResponseHandler ( ) )
55
+ . AddHttpMessageHandler ( ( ) => new XmlResponseHandler ( ) )
38
56
. ConfigureHttpClient ( c => c . BaseAddress = new Uri ( "http://webapiclient.com/" ) ) ;
39
57
40
58
this . ServiceProvider = services . BuildServiceProvider ( ) ;
41
- this . ServiceProvider . GetService < IWebApiClientCoreApi > ( ) ;
42
- this . ServiceProvider . GetService < IRefitApi > ( ) ;
59
+ this . ServiceProvider . GetService < IWebApiClientCoreJsonApi > ( ) ;
60
+ this . ServiceProvider . GetService < IRefitJsonApi > ( ) ;
43
61
}
44
62
45
- private class UserResponseHandler : DelegatingHandler
63
+ private class JsonResponseHandler : DelegatingHandler
46
64
{
47
65
private static readonly MediaTypeHeaderValue applicationJson = MediaTypeHeaderValue . Parse ( "application/json" ) ;
48
66
protected override Task < HttpResponseMessage > SendAsync ( HttpRequestMessage request , CancellationToken cancellationToken )
49
67
{
50
- var content = new StreamContent ( new MemoryStream ( User . Utf8Array , writable : false ) , User . Utf8Array . Length ) ;
68
+ var content = new StreamContent ( new MemoryStream ( User . Utf8Json , writable : false ) , User . Utf8Json . Length ) ;
51
69
content . Headers . ContentType = applicationJson ;
52
70
var response = new HttpResponseMessage ( HttpStatusCode . OK )
53
71
{
@@ -56,5 +74,20 @@ protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage reques
56
74
return Task . FromResult ( response ) ;
57
75
}
58
76
}
77
+
78
+ private class XmlResponseHandler : DelegatingHandler
79
+ {
80
+ private static readonly MediaTypeHeaderValue applicationXml = MediaTypeHeaderValue . Parse ( "application/xml" ) ;
81
+ protected override Task < HttpResponseMessage > SendAsync ( HttpRequestMessage request , CancellationToken cancellationToken )
82
+ {
83
+ var content = new StringContent ( User . XmlString , Encoding . UTF8 ) ;
84
+ content . Headers . ContentType = applicationXml ;
85
+ var response = new HttpResponseMessage ( HttpStatusCode . OK )
86
+ {
87
+ Content = content
88
+ } ;
89
+ return Task . FromResult ( response ) ;
90
+ }
91
+ }
59
92
}
60
93
}
0 commit comments