1 package us.codecraft.webmagic;
2
3 import us.codecraft.webmagic.downloader.HttpClientDownloader;
4 import us.codecraft.webmagic.model.PageMapper;
5 import us.codecraft.webmagic.proxy.ProxyProvider;
6
7
8
9
10
11
12 public class SimpleHttpClient {
13
14 private final HttpClientDownloader httpClientDownloader;
15
16 private final Site site;
17
18 public SimpleHttpClient() {
19 this(Site.me());
20 }
21
22 public SimpleHttpClient(Site site) {
23 this.site = site;
24 this.httpClientDownloader = new HttpClientDownloader();
25 }
26
27 public void setProxyProvider(ProxyProvider proxyProvider){
28 this.httpClientDownloader.setProxyProvider(proxyProvider);
29 }
30
31 public <T> T get(String url, Class<T> clazz) {
32 return get(new Request(url), clazz);
33 }
34
35 public <T> T get(Request request, Class<T> clazz) {
36 Page page = httpClientDownloader.download(request, site.toTask());
37 if (!page.isDownloadSuccess()) {
38 return null;
39 }
40 return new PageMapper<T>(clazz).get(page);
41 }
42
43 public Page get(String url) {
44 return httpClientDownloader.download(new Request(url), site.toTask());
45 }
46
47 public Page get(Request request) {
48 return httpClientDownloader.download(request, site.toTask());
49 }
50
51 }