* 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.PrintStream;
+import java.io.IOException;
+
+import javax.xml.transform.TransformerException;
import org.apache.commons.httpclient.HttpClient;
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.
*/
public class PostPageRequest extends AbstractPageRequest {
-
- public PostPageRequest(NameValuePair[] aParams, String aXslt) {
- super(aParams, aXslt, null);
- }
-
- public PostPageRequest(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 aHeaders Request headers to use.
+ * @param aXslt XSLT to use.
+ */
+ public PostPageRequest(int aMaxTries, int aMaxDelay,
+ NameValuePair[] aParams,
+ NameValuePair[] aHeaders,
+ String aXslt, XslTransformer aTransformer) {
+ super(aMaxTries, aMaxDelay, aParams, aHeaders, aXslt, aTransformer);
}
-
-
- /* (non-Javadoc)
- * @see org.wamblee.crawler.PageRequest#execute(java.lang.String, org.apache.commons.httpclient.HttpClient)
+
+ /*
+ * (non-Javadoc)
+ *
+ * @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());
- return executeMethod(aClient, method);
+ method.addParameters(getParameters(aParams));
+ try {
+ return executeMethod(aClient, method);
+ } catch (TransformerException e) {
+ throw new PageException("Transformation problem for url " + aUrl, e);
+ } catch (IOException e) {
+ throw new PageException("Problem getting page " + aUrl, e);
+ }
}
}