У меня есть цикл, который выглядит следующим образом:
//Pseudo code
subUrl = divs.get(n).select("a[href].eDL");
for(int o=0; o<subUrl.size(); o++) {
subUrlW = subUrl.get(o).select("a[href].eDL").attr("abs:href");
httpget = new HttpGet(subUrlW);
HttpResponse httpRes2 = httpclient1.execute(httpget, httpContext);
html = EntityUtils.toString(httpRes2.getEntity());
doc = Jsoup.parse(html, subUrlW);
divs = doc.select("div#pTU");
for(int p=0; p<divs.size();p++) {
subUrl = divs.get(p).select("a[href].pd");
for(int q=0; q<subUrl.size(); q++) {
subUrlW = subUrl.get(q).select("a[href].pd").attr("abs:href");
}
}
}
Я вижу, что subUrlW имеет значение null, однако, если я выполню это для отладки, subUrlW не будет иметь значение null.
subUrl = divs.get(n).select("a[href].eDL");
for(int o=0; o<subUrl.size(); o++) {
subUrlW = subUrl.get(o).select("a[href].eDL").attr("abs:href");
System.out.println("subUrlW"+subUrlW);
}
Когда этот цикл выполняется, я получаю следующее исключение,
java.lang.IllegalStateException: Target host must not be null, or set in parameters.
at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:717)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:358)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
Однако он указывает на его линию,
HttpResponse httpRes2 = httpclient1.execute(httpget, httpContext);
Любые отзывы приветствуются.