Jersey Client + set proxy

client, java, jersey-1.0, proxy

Solution

There is an easier approach, if you want to avoid more libraries in legacy projects and there is no need for Proxy Authentication:

First you need a class which implements `HttpURLConnectionFactory`:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;

import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory;


public class ConnectionFactory implements HttpURLConnectionFactory {

    Proxy proxy;

    private void initializeProxy() {
        proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("myproxy.com", 3128));
    }

    public HttpURLConnection getHttpURLConnection(URL url) throws IOException {
        initializeProxy();
        return (HttpURLConnection) url.openConnection(proxy);
    }
}

Second is to instantiate an `com.sun.jersey.client.urlconnection.URLConnectionHandler`

URLConnectionClientHandler ch  = new URLConnectionClientHandler(new ConnectionFactory());

and third is to use the `Client` Constructor instead of `Client.create`:

Client client = new Client(ch);

Of course you can customize the initializing of the Proxy in the `ConnectionFactory`.

Problem

Hi I've a jersey client which i use to upload a file. I tried using it locally and everything works fine. But in production environment i've to set proxy. I browsed thru few pages but could not get exact solution. Can someone pls help me with this? here is my client code: ``` File file = new File("e:\\test.zip"); FormDataMultiPart part = new FormDataMultiPart(); part.bodyPart(new FileDataBodyPart("file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE)); WebResource resource = null; if (proxy.equals("yes")) { // How do i configure client in this case? } else { // this uses system proxy i guess resource = Client.create().resource(url); } String response = (String) resource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(String.class, part); System.out.println(response); ```

Original source