/
IHttpClient.cs
68 lines (52 loc) · 2.02 KB
/
IHttpClient.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace Com.Penrillian.Kinvey
{
internal interface IHttpClient
{
Uri BaseAddress { set; }
IHttpRequestHeaders DefaultRequestHeaders { get; }
Task<IHttpResponseMessage> DeleteAsync(Uri requestUri);
Task<IHttpResponseMessage> PutAsync(Uri requestUri, IHttpContent content);
Task<IHttpResponseMessage> PostAsync(Uri requestUri, IHttpContent content);
Task<IHttpResponseMessage> GetAsync(Uri requestUri);
}
internal class ProxyHttpClient : IHttpClient
{
private readonly HttpClient _client;
public ProxyHttpClient(HttpClient client)
{
_client = client;
}
public Uri BaseAddress
{
set { _client.BaseAddress = value; }
}
public IHttpRequestHeaders DefaultRequestHeaders
{
get
{
return Factory.Instance.Get<IHttpRequestHeaders>(_client.DefaultRequestHeaders);
}
}
public async Task<IHttpResponseMessage> GetAsync(Uri requestUri)
{
return Factory.Instance.Get<IHttpResponseMessage>(await _client.GetAsync(requestUri));
}
public async Task<IHttpResponseMessage> DeleteAsync(Uri requestUri)
{
return Factory.Instance.Get<IHttpResponseMessage>(await _client.DeleteAsync(requestUri));
}
public async Task<IHttpResponseMessage> PutAsync(Uri requestUri, IHttpContent content)
{
var rawContent = Factory.Instance.Get<HttpContent>(content);
return Factory.Instance.Get<IHttpResponseMessage>(await _client.PutAsync(requestUri, rawContent));
}
public async Task<IHttpResponseMessage> PostAsync(Uri requestUri, IHttpContent content)
{
var rawContent = Factory.Instance.Get<HttpContent>(content);
return Factory.Instance.Get<IHttpResponseMessage>(await _client.PostAsync(requestUri, rawContent));
}
}
}