View Javadoc
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    * @author code4crafter@gmail.com
9    *         Date: 2017/5/27
10   * @since 0.7.0
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  }