~tetron/astrid/RTM-list-support

« back to all changes in this revision

Viewing changes to src/com/mdt/rtm/Invoker.java

  • Committer: Tim Su
  • Date: 2009-06-13 21:25:34 UTC
  • mfrom: (215.1.16 2.8.5)
  • Revision ID: tim@todoroo.com-20090613212534-r01v4v7qu2w4og1c
Merged from 2.8.5 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import javax.xml.parsers.DocumentBuilder;
32
32
import javax.xml.parsers.DocumentBuilderFactory;
33
33
 
34
 
import org.apache.http.HttpHost;
35
34
import org.apache.http.HttpResponse;
36
35
import org.apache.http.HttpStatus;
37
 
import org.apache.http.HttpVersion;
38
36
import org.apache.http.client.HttpClient;
39
37
import org.apache.http.client.methods.HttpGet;
40
38
import org.apache.http.impl.client.DefaultHttpClient;
41
39
import org.apache.http.message.BasicHeader;
42
 
import org.apache.http.params.BasicHttpParams;
43
 
import org.apache.http.params.HttpProtocolParams;
44
 
import org.apache.http.protocol.BasicHttpProcessor;
45
40
import org.apache.http.protocol.HTTP;
46
 
import org.apache.http.protocol.RequestConnControl;
47
 
import org.apache.http.protocol.RequestContent;
48
 
import org.apache.http.protocol.RequestExpectContinue;
49
 
import org.apache.http.protocol.RequestTargetHost;
50
 
import org.apache.http.protocol.RequestUserAgent;
51
41
import org.w3c.dom.Document;
52
42
import org.w3c.dom.Element;
53
43
import org.w3c.dom.Node;
84
74
    builder = aBuilder;
85
75
  }
86
76
 
87
 
  public static final String REST_SERVICE_URL_POSTFIX = "/services/rest/";
88
 
 
89
 
  public static final String ENCODING = "UTF-8";
90
 
 
91
 
  public static final String API_SIG_PARAM = "api_sig";
92
 
 
93
 
  public static final long INVOCATION_INTERVAL = 400;
 
77
  private static final String ENCODING = "UTF-8";
 
78
 
 
79
  private static final String API_SIG_PARAM = "api_sig";
 
80
 
 
81
  private static final long INVOCATION_INTERVAL = 400;
 
82
 
 
83
  private static final String USER_AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)";
94
84
 
95
85
  private long lastInvocation;
96
86
 
102
92
 
103
93
  private BasicHeader basicHeader;
104
94
 
105
 
  private BasicHttpParams globalHttpParams;
106
 
 
107
 
  private BasicHttpProcessor httpProcessor;
108
 
 
109
95
  private HttpClient httpClient;
110
96
 
111
97
  public Invoker(String serverHostName, int serverPortNumber,
113
99
            throws ServiceInternalException {
114
100
 
115
101
        this.serviceRelativeUri = serviceRelativeUri;
116
 
        new HttpHost(serverHostName, serverPortNumber);
117
 
        globalHttpParams = new BasicHttpParams();
118
 
        HttpProtocolParams.setVersion(globalHttpParams, HttpVersion.HTTP_1_1);
119
 
        HttpProtocolParams.setContentCharset(globalHttpParams, ENCODING);
120
 
        HttpProtocolParams.setUseExpectContinue(globalHttpParams, true);
121
102
 
122
103
        basicHeader = new BasicHeader(HTTP.CHARSET_PARAM, ENCODING);
123
 
 
124
 
        httpProcessor = new BasicHttpProcessor();
125
 
        // Required protocol interceptors
126
 
        httpProcessor.addInterceptor(new RequestContent());
127
 
        httpProcessor.addInterceptor(new RequestTargetHost());
128
 
        // Recommended protocol interceptors
129
 
        httpProcessor.addInterceptor(new RequestConnControl());
130
 
        httpProcessor.addInterceptor(new RequestUserAgent());
131
 
        httpProcessor.addInterceptor(new RequestExpectContinue());
132
 
 
133
104
        httpClient = new DefaultHttpClient();
134
105
 
135
106
        lastInvocation = System.currentTimeMillis();
190
161
        final HttpGet request = new HttpGet("http://"
191
162
            + ServiceImpl.SERVER_HOST_NAME + requestUri.toString());
192
163
        request.setHeader(basicHeader);
 
164
        request.addHeader("User-Agent", USER_AGENT);
193
165
        final String methodUri = request.getRequestLine().getUri();
194
166
 
195
167
        Element result;
269
241
                }
270
242
            }
271
243
        } catch (IOException e) {
272
 
            throw new ServiceInternalException("Connection error", e);
 
244
            throw new ServiceInternalException("IOException: " + e.getMessage(), e);
273
245
        } catch (SAXException e) {
274
 
            throw new ServiceInternalException("XML Parse Exception", e);
 
246
            throw new ServiceInternalException("XML Parse: " + e.getMessage(), e);
275
247
        } finally {
276
248
            httpClient.getConnectionManager().closeExpiredConnections();
277
249
        }