1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package net.sf.jdigg.requests;
17  
18  import net.sf.jdigg.arguments.AbstractArguments;
19  import net.sf.jdigg.util.Assert;
20  
21  import org.apache.commons.httpclient.Credentials;
22  import org.apache.commons.httpclient.HostConfiguration;
23  import org.apache.commons.httpclient.HttpClient;
24  import org.apache.commons.httpclient.UsernamePasswordCredentials;
25  import org.apache.commons.httpclient.auth.AuthScope;
26  import org.apache.commons.logging.Log;
27  import org.apache.commons.logging.LogFactory;
28  
29  
30  
31  
32  
33  
34  
35  
36  public abstract class AbstractRequest {
37  
38      protected final Log log = LogFactory.getLog(getClass());
39  
40      public static final String DIGG_SERVICE_URL = "http://services.digg.com";
41  
42      private RequestConfig requestConfig;
43  
44      public AbstractRequest(RequestConfig requestConfig) {
45          Assert.notNull(requestConfig, "The RequestConfig must not be 'null'!");
46          this.requestConfig = requestConfig;
47      }
48  
49      protected HttpClient getHttpClient() {
50          HttpClient httpClient = new HttpClient();
51          RequestConfig requestConfig = getRequestConfig();
52  
53          ProxyHost proxyHost = requestConfig.getProxyHost();
54          if (proxyHost != null) {
55              HostConfiguration hostConfiguration = httpClient.getHostConfiguration();
56              hostConfiguration.setProxy(proxyHost.getProxyHost(), proxyHost.getProxyPort());
57              httpClient.setHostConfiguration(hostConfiguration);
58  
59              ProxyUser proxyUser = proxyHost.getProxyUser();
60              if (proxyUser != null) {
61                  Credentials defaultcreds =
62                          new UsernamePasswordCredentials(proxyUser.getUserName(), proxyUser.getPassword());
63                  httpClient.getState().setProxyCredentials(AuthScope.ANY, defaultcreds);
64              }
65          }
66  
67          return httpClient;
68      }
69  
70      protected String buildRequestString(String endpoint, AbstractArguments listStoriesArguments) {
71          return endpoint + "?" + listStoriesArguments.getUrlEncodedArgumentList();
72      }
73  
74      protected RequestConfig getRequestConfig() {
75          return requestConfig;
76      }
77  
78  }