support for parameters on actions.
[utils] / crawler / basic / src / org / wamblee / crawler / PostPageRequest.java
index 2257652204c2d706b1e17de2507dec95451496e6..4a6a073c490eaa6d209ca924a3c5744a8defc678 100644 (file)
@@ -16,7 +16,7 @@
 
 package org.wamblee.crawler;
 
-import java.io.PrintStream;
+import java.io.IOException;
 
 import javax.xml.transform.TransformerException;
 
@@ -24,19 +24,26 @@ 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(int aMaxTries, int aMaxDelay, NameValuePair[] aParams, String aXslt) {
-        super(aMaxTries, aMaxDelay, aParams, aXslt, null);
-    }
-
-    public PostPageRequest(int aMaxTries, int aMaxDelay, NameValuePair[] aParams, String aXslt,
-            PrintStream aOs) {
-        super(aMaxTries, aMaxDelay, 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);
     }
 
     /*
@@ -45,14 +52,16 @@ public class PostPageRequest extends AbstractPageRequest {
      * @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);
         }
     }