-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathDataSource.cs
73 lines (69 loc) · 2.36 KB
/
DataSource.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
69
70
71
72
73
using System;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http;
using System.Collections.Generic;
using SitePluginCommon;
namespace MixchSitePlugin
{
interface IDataSource
{
Task<string> GetAsync(string url);
Task<string> GetAsync(string url, Dictionary<string, string> headers);
Task<string> GetAsync(string url, CookieContainer cc);
Task<byte[]> GetByteArrayAsync(string url, CookieContainer cc);
Task<string> PostJsonAsync(string url, Dictionary<string, string> headers, string json);
}
class DataSource : ServerBase, IDataSource
{
public async Task<string> GetAsync(string url, CookieContainer cc)
{
var result = await GetInternalAsync(new HttpOptions
{
Url = url,
Cc = cc,
UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0",
});
var str = await result.Content.ReadAsStringAsync();
return str;
}
public Task<string> GetAsync(string url)
{
return GetAsync(url, (CookieContainer)null);
}
public async Task<string> GetAsync(string url, Dictionary<string, string> headers)
{
var result = await GetInternalAsync(new HttpOptions
{
Url = url,
Headers = headers,
});
var str = await result.Content.ReadAsStringAsync();
return str;
}
public async Task<string> PostJsonAsync(string url, Dictionary<string, string> headers, string json)
{
var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
var result = await PostInternalAsync(new HttpOptions
{
Url = url,
Headers = headers,
}, content);
var str = await result.Content.ReadAsStringAsync();
return str;
}
public async Task<byte[]> GetByteArrayAsync(string url, CookieContainer cc)
{
var result = await GetInternalAsync(new HttpOptions
{
Url = url,
Cc = cc,
});
var arr = await result.Content.ReadAsByteArrayAsync();
return arr;
}
public DataSource()
{
}
}
}