* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
+ */
package org.wamblee.crawler;
+import java.io.IOException;
import java.io.PrintStream;
+import javax.xml.transform.TransformerException;
+
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.NameValuePair;
import org.w3c.dom.Document;
/**
- * Gets a page by issueing a get request.
+ * Gets a page by issueing a get request.
*/
public class GetPageRequest extends AbstractPageRequest {
-
- public GetPageRequest(NameValuePair[] aParams, String aXslt) {
- super(aParams, aXslt, null);
+
+ /**
+ * Constructs the request.
+ * @param aMaxTries Maximum number of retries.
+ * @param aMaxDelay Maximum delay before executing the request.
+ * @param aParams Request parameters to use.
+ * @param aXslt XSLT to use.
+ */
+ public GetPageRequest(int aMaxTries, int aMaxDelay, NameValuePair[] aParams, String aXslt) {
+ super(aMaxTries, aMaxDelay, aParams, aXslt, null);
}
-
- public GetPageRequest(NameValuePair[] aParams, String aXslt, PrintStream aOs) {
- super(aParams, aXslt, aOs);
+
+ /**
+ * Constructs the request.
+ * @param aMaxTries Maximum number of retries.
+ * @param aMaxDelay Maximum delay before executing the request.
+ * @param aParams Request parameters to use.
+ * @param aXslt XSLT to use.
+ * @param aOs Logging output stream to use.
+ */
+ public GetPageRequest(int aMaxTries, int aMaxDelay, NameValuePair[] aParams, String aXslt, PrintStream aOs) {
+ super(aMaxTries, aMaxDelay, aParams, aXslt, aOs);
}
-
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.wamblee.crawler.PageRequest#getPage(org.apache.commons.httpclient.HttpClient)
*/
- public Document execute(String aUrl, HttpClient aClient) {
+ public Document execute(String aUrl, HttpClient aClient)
+ throws PageException {
HttpMethod method = new GetMethod(aUrl);
- if ( getParameters().length > 0 ) {
+ if (getParameters().length > 0) {
String oldQueryString = method.getQueryString();
method.setQueryString(getParameters());
String queryString = method.getQueryString();
- if ( oldQueryString.length() > 0 ) {
+ if (oldQueryString.length() > 0) {
queryString = queryString + '&' + oldQueryString;
method.setQueryString(queryString);
}
}
-
- return executeMethod(aClient, method);
+ try {
+ return executeMethod(aClient, method);
+ } catch (TransformerException e) {
+ throw new PageException(e.getMessage(), e);
+ } catch (IOException e) {
+ throw new PageException(e.getMessage(), e);
+ }
}
}