package org.wamblee.crawler;
-import java.io.PrintStream;
+import java.io.IOException;
import javax.xml.transform.TransformerException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.w3c.dom.Document;
+import org.wamblee.xml.XslTransformer;
/**
* Retrieving pages using the post method.
* @param aMaxTries Maximum number of retries.
* @param aMaxDelay Maximum delay before executing the request.
* @param aParams Request parameters to use.
+ * @param aHeaders Request headers to use.
* @param aXslt XSLT to use.
*/
- public PostPageRequest(int aMaxTries, int aMaxDelay, NameValuePair[] aParams, String aXslt) {
- super(aMaxTries, aMaxDelay, 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.
- * @param aOs Logging output stream to use.
- */
- public PostPageRequest(int aMaxTries, int aMaxDelay, NameValuePair[] aParams, String aXslt,
- PrintStream aOs) {
- super(aMaxTries, aMaxDelay, aParams, aXslt, aOs);
+ public PostPageRequest(int aMaxTries, int aMaxDelay,
+ NameValuePair[] aParams,
+ NameValuePair[] aHeaders,
+ String aXslt, XslTransformer aTransformer) {
+ super(aMaxTries, aMaxDelay, aParams, aHeaders, aXslt, aTransformer);
}
/*
* @see org.wamblee.crawler.PageRequest#execute(java.lang.String,
* org.apache.commons.httpclient.HttpClient)
*/
- public Document execute(String aUrl, HttpClient aClient)
+ public Document execute(String aUrl, NameValuePair[] aParams, HttpClient aClient)
throws PageException {
PostMethod method = new PostMethod(aUrl);
- method.addParameters(getParameters());
+ method.addParameters(getParameters(aParams));
try {
return executeMethod(aClient, method);
} catch (TransformerException e) {
- throw new PageException(e.getMessage(), e);
+ throw new PageException("Transformation problem for url " + aUrl, e);
+ } catch (IOException e) {
+ throw new PageException("Problem getting page " + aUrl, e);
}
}