[
https://issues.apache.org/jira/browse/HTTPCLIENT-1206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hendy Irawan updated HTTPCLIENT-1206:
-------------------------------------
Summary: DecompressingHttpClient ignores "https://" URI, always connects as
plain "http://" (was: DecompressingHttpClient doesn't work with HTTPS)
> DecompressingHttpClient ignores "https://" URI, always connects as plain
> "http://"
> ----------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-1206
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1206
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient
> Affects Versions: 4.2 Final
> Reporter: Hendy Irawan
>
> DecompressingHttpClient is the successor of ContentEncodingHttpClient.
> However ContentEncodingHttpClient works well with HTTPS, while
> DecompressingHttpClient always uses plain HTTP.
> Sample code (from https://github.com/soluvas/fb-tools ):
> package org.soluvas.fbcli;
> import java.net.URI;
> import javax.annotation.PostConstruct;
> import javax.annotation.PreDestroy;
> import javax.enterprise.event.Observes;
> import javax.inject.Inject;
> import javax.inject.Named;
> import org.apache.http.HttpResponse;
> import org.apache.http.client.HttpClient;
> import org.apache.http.client.methods.HttpGet;
> import org.apache.http.client.utils.URIBuilder;
> import org.apache.http.impl.client.ContentEncodingHttpClient;
> import org.apache.http.impl.conn.PoolingClientConnectionManager;
> import org.apache.http.params.BasicHttpParams;
> import org.jboss.weld.environment.se.bindings.Parameters;
> import org.jboss.weld.environment.se.events.ContainerInitialized;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> import akka.actor.ActorSystem;
> import akka.dispatch.Future;
> import com.fasterxml.jackson.databind.JsonNode;
> import com.fasterxml.jackson.databind.ObjectMapper;
> import com.fasterxml.jackson.databind.SerializationFeature;
> /**
> * @author ceefour
> */
> public class FbCli {
> private transient Logger log = LoggerFactory.getLogger(FbCli.class);
> @Inject @Parameters String[] args;
> @Inject @Named("facebook_accessToken") String accessToken;
> public void run(@Observes ContainerInitialized e) {
> log.info("fbcli starting");
> if (args.length < 1)
> throw new RuntimeException("Requires command line
> arguments.");
>
> if ("friends".equals(args[0])) {
> try {
> // this works:
> HttpClient httpClient = new
> ContentEncodingHttpClient(new PoolingClientConnectionManager(), new
> BasicHttpParams());
> // this doesn't work:
> // HttpClient httpClient = new
> DecompressingHttpClient(new DefaultHttpClient(new
> PoolingClientConnectionManager(), new BasicHttpParams()));
> try {
> URI friendsUri = new
> URIBuilder("https://graph.facebook.com/me/friends").addParameter("access_token",
> accessToken).build();
> HttpGet getReq = new
> HttpGet(friendsUri);
> HttpResponse friendsResp =
> httpClient.execute(getReq);
>
> ObjectMapper mapper = new
> ObjectMapper();
>
> mapper.enable(SerializationFeature.INDENT_OUTPUT);
> JsonNode json =
> mapper.readTree(friendsResp.getEntity().getContent());
>
> if (json.has("paging")) {
> JsonNode pagingNode =
> json.get("paging");
> if (pagingNode.has("next")) {
> String nextUri =
> pagingNode.get("next").asText();
> }
> }
>
> mapper.writeValue(System.out, json);
> } finally {
>
> httpClient.getConnectionManager().shutdown();
> }
> } catch (Exception ex) {
> throw new RuntimeException(ex);
> }
> }
> }
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]