comment enregistrer le gestionnaire d'URL pour Apache commons httpclient
-
02-07-2019 - |
Question
Je souhaite pouvoir accéder à des URL personnalisées avec Apache httpclient. Quelque chose comme ça:
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod("media:///squishy.jpg");
int statusCode = client.executeMethod(method);
Puis-je en quelque sorte enregistrer un gestionnaire d’URL personnalisé? Ou devrais-je simplement en enregistrer un avec Java, en utilisant
URL.setURLStreamHandlerFactory(...)
Cordialement.
La solution
Je ne pense pas qu'il y ait un moyen de faire cela dans http: commun commons. Cela n'a pas beaucoup de sens non plus, après tout, il s'agit d'un client HTTP et de "media: ///squishy.jpg" n’est pas HTTP, donc tout le code pour implémenter le protocole HTTP ne pourrait probablement pas être utilisé de toute façon.
URL.setURLStreamHandlerFactory(...)
pourrait être la voie à suivre, mais vous devrez probablement faire beaucoup de codage de protocole à la main, en fonction de votre "média".
Autres conseils
Nous le faisons comme ceci:
org.apache.commons.httpclient.protocol.Protocol.registerProtocol("ss-https",
new Protocol("ss-https",
(ProtocolSocketFactory)new EasySSLProtocolSocketFactory(), 443));