1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.bea.domingo.http;
24
25 import java.io.IOException;
26
27 import org.apache.commons.httpclient.Header;
28 import org.apache.commons.httpclient.methods.GetMethod;
29
30 import de.bea.domingo.util.XMLUtil;
31
32 /***
33 * An Http GET method to a Lotus Domino server.
34 *
35 * @author <a href=mailto:kriede@users.sourceforge.net>Kurt Riede</a>
36 */
37 public final class DominoGetMethod extends GetMethod implements DominoHttpMethod {
38
39 /***
40 * Private constructor; use {@ink #GetInstance(String)} to create new
41 * instances of this class.
42 *
43 * @param uri the URI of the method
44 */
45 private DominoGetMethod(final String uri) {
46 super(uri);
47 }
48
49 /***
50 * Returns a new instance of this class.
51 *
52 * @param uri the URI of the method
53 * @return a new instance
54 */
55 static DominoGetMethod getInstance(final String uri) {
56 return new DominoGetMethod(uri);
57 }
58
59 /***
60 * {@inheritDoc}
61 * @throws IOException if the response cannot be read
62 *
63 * @see de.bea.domingo.http.DominoHttpMethod#getResponseBodyString()
64 */
65 public String getResponseBodyString() throws IOException {
66 Header contentTypeHeader = getResponseHeader("Content-Type");
67 String contentType = contentTypeHeader == null ? "text/html charset=UTF-8" : contentTypeHeader.getValue();
68 if (contentType.startsWith("text/html")) {
69 return getResponseBodyAsString();
70 }
71 if (contentType.startsWith("text/xml")) {
72 return XMLUtil.parse(getResponseBody());
73 }
74 return getResponseBodyAsString();
75 }
76 }