Unable to get the redirect uri from
http://local.direct.gov.uk/LDGRedirect/index.jsp?LGSL=58&LGIL=08&AgencyId=35&Type=Single
----------------------------------------------------------------------------------------------------------------------------
Key: HTTPCLIENT-1023
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1023
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient
Affects Versions: 4.0.3
Environment: windows XP
Reporter: Roy Silva
Hi,
I visit the above page
http://local.direct.gov.uk/LDGRedirect/index.jsp?LGSL=58&LGIL=08&AgencyId=35&Type=Single.
This page takes me to http://www.brent.gov.uk/revsbens.nsf/counciltax/LBB-1.
The problem is that I can not reach the other page via a redirect. If I user
another redirection site, it works but not the one above.
I use the httphead to get the redirected url then construct an htmlget to get
the data. The program stops working at HttpResponse response =
httpClient.execute(httpHead, localContext);
Please help. Thank you in advance.
Please see my code.
public static void main(String[] args) throws Exception {
final HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, false);
String login = "username:password";
String encoded = new
String(Base64.encodeBase64(login.getBytes()));
Properties systemSettings = System.getProperties();
systemSettings.put("proxySet", "true");
systemSettings.put("http.proxyHost", "proxy");
systemSettings.put("http.proxyPort", "port");
/* basic credentials for site being accessed */
CredentialsProvider credProvider = new
BasicCredentialsProvider();
credProvider.setCredentials(new AuthScope("proxy", port),
new UsernamePasswordCredentials("username",
"password"));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
httpClient.setCredentialsProvider(credProvider);
ProxySelectorRoutePlanner routePlanner = new
ProxySelectorRoutePlanner(httpClient.getConnectionManager().getSchemeRegistry(),
ProxySelector
.getDefault());
httpClient.setRoutePlanner(routePlanner);
//HttpHead httpHead = new
HttpHead("http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGrJk-F7Dmshmtze2yhifxRsv8sRg&url=http://www.mtv.com/news/articles/1647243/20100907/story.jhtml");
HttpHead httpHead = new
HttpHead("http://local.direct.gov.uk/LDGRedirect/index.jsp?LGSL=58&LGIL=08&AgencyId=35&Type=Single");
DefaultRedirectHandler redHand = new DefaultRedirectHandler();
httpClient.setRedirectHandler(redHand);
HttpResponse response = httpClient.execute(httpHead,
localContext);
if (response.getStatusLine().getStatusCode() !=
HttpStatus.SC_OK)
throw new IOException(response.getStatusLine().toString());
HttpUriRequest currentReq = (HttpUriRequest)
localContext.getAttribute(
ExecutionContext.HTTP_REQUEST);
HttpHost currentHost = (HttpHost) localContext.getAttribute(
ExecutionContext.HTTP_TARGET_HOST);
String currentUrl = currentHost.toURI() + currentReq.getURI();
System.out.println(">>> " +currentUrl);
System.out.println("response status: " +
response.getStatusLine());
// test the target
HttpHost target = (HttpHost)
localContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
HttpUriRequest request = (HttpUriRequest)
localContext.getAttribute(ExecutionContext.HTTP_REQUEST);
System.out.println("target is: " + target);
System.out.println("final req: " + request.getURI());
System.out.println("target method: " + request.getMethod());
System.out.println("redHand: " +
redHand.isRedirectRequested(response, localContext));
// now construct an httpGet
HttpGet httpGet = new HttpGet(request.getURI());
response = httpClient.execute(httpGet, localContext);
HttpEntity entity = response.getEntity();
if (entity != null) {
BufferedReader in = null;
try {
InputStream inputStream = entity.getContent();
in = new BufferedReader(new
InputStreamReader(inputStream));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
while ((inputLine = in.readLine()) !=
null) {
TagStripper tagStripper = new
TagStripper(inputLine);
while (tagStripper.hasNext()) {
String tempString =
tagStripper.next();
ContentStripper
contentStripper = new ContentStripper(tempString);
String name =
contentStripper.getName();
if (name != null) {
if
(name.length() > 0) {
String
content = contentStripper.getContent();
System.out.println("Name: " + name + " content: " + content);
}
}
}
//
System.out.println(inputLine);
}
}
} catch (Exception e) {
System.out.println("Error in communicaton: " +
e.getMessage());
}
in.close();
}
httpClient.getConnectionManager().shutdown();
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]