View Javadoc
1   package us.codecraft.webmagic.proxy;
2   
3   import us.codecraft.webmagic.Page;
4   import us.codecraft.webmagic.Request;
5   import us.codecraft.webmagic.Task;
6   
7   /**
8    * Proxy provider. <br>
9    *     
10   * @since 0.7.0
11   */
12  public interface ProxyProvider {
13  
14      /**
15       *
16       * Return proxy to Provider when complete a download.
17       * @param proxy the proxy config contains host,port and identify info
18       * @param page the download result
19       * @param task the download task
20       */
21      void returnProxy(Proxy proxy, Page page, Task task);
22  
23      /**
24       * Get a proxy for task by some strategy.
25       * @param task the download task
26       * @return proxy 
27       * @deprecated Use {@link #getProxy(Request, Task)} instead.
28       */
29      @Deprecated
30      default Proxy getProxy(Task task) {
31          throw new UnsupportedOperationException();
32      }
33  
34      /**
35       * Returns a proxy for the request.
36       *
37       * @param request the request
38       * @param task the download task
39       * @return proxy
40       * @since 0.9.0
41       */
42      default Proxy getProxy(Request request, Task task) {
43          return this.getProxy(task);
44      }
45  
46  }