X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=crawler%2Fbasic%2Fsrc%2Forg%2Fwamblee%2Fcrawler%2Fimpl%2FConfigurationParser.java;h=3069104d07ec9174d7eeef969a5efcc1905006e7;hb=bc261b857facb7111e9d6ae68da1f5cc2400d21d;hp=7e15d4a3ae90c151a371f98214f48c3a78caf2ca;hpb=9584bb45a4731bbfccd810b586441d54ea660871;p=utils diff --git a/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java b/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java index 7e15d4a3..3069104d 100644 --- a/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java +++ b/crawler/basic/src/org/wamblee/crawler/impl/ConfigurationParser.java @@ -48,6 +48,8 @@ public class ConfigurationParser { private static final String ELEM_XSLT = "xslt"; private static final String ELEM_PARAM = "param"; + + private static final String ELEM_HEADER = "header"; private static final String AT_NAME = "name"; @@ -149,20 +151,17 @@ public class ConfigurationParser { private PageRequest parseRequestConfig(Element aElem) { String method = aElem.elementText(ELEM_METHOD); String xslt = aElem.elementText(ELEM_XSLT); - List params = new ArrayList(); - for (Iterator i = aElem.elementIterator(ELEM_PARAM); i.hasNext();) { - Element paramElem = (Element) i.next(); - NameValuePair param = parseParameter(paramElem); - params.add(param); - } - + List params = parseNameValuePairs(aElem, ELEM_PARAM); + List headers = parseNameValuePairs(aElem, ELEM_HEADER); + NameValuePair[] paramsArray = params.toArray(new NameValuePair[0]); + NameValuePair[] headersArray = headers.toArray(new NameValuePair[0]); PageRequest request; if (METHOD_POST.equals(method)) { - request = new PostPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, + request = new PostPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, headersArray, xslt, _transformer); } else if (METHOD_GET.equals(method) || method == null) { - request = new GetPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, + request = new GetPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, headersArray, xslt, _transformer); } else { throw new RuntimeException("Unknown request method '" + method @@ -172,6 +171,20 @@ public class ConfigurationParser { return request; } + /** + * @param aElem + * @return + */ + private List parseNameValuePairs(Element aElem, String aElemName) { + List headers = new ArrayList(); + for (Iterator i = aElem.elementIterator(aElemName); i.hasNext();) { + Element paramElem = (Element) i.next(); + NameValuePair header = parseParameter(paramElem); + headers.add(header); + } + return headers; + } + /** * Parses a parameter definition. * @param aParam Parameter.