java.net

## Class Proxy

- java.lang.Object
- - java.net.Proxy

    public class Proxy
    extends Object

This class represents a proxy setting, typically a type (http, socks) and a socket address. A `Proxy` is an immutable object.

Since:
  1.5
See Also:
  `ProxySelector`

### Nested Class Summary

Nested Classes
`static class` `Proxy.Type` Represents the proxy type.

### Field Summary

Fields
`static Proxy` `NO_PROXY` A proxy setting that represents a `DIRECT` connection, basically telling the protocol handler not to use any proxying.

### Constructor Summary

Constructors
Constructor and Description
`Proxy(Proxy.Type type, SocketAddress sa)` Creates an entry representing a PROXY connection.

### Method Summary

Methods
`SocketAddress` `address()` Returns the socket address of the proxy, or `null` if its a direct connection.
`boolean` `equals(Object obj)` Compares this object against the specified object.
`int` `hashCode()` Returns a hashcode for this Proxy.
`String` `toString()` Constructs a string representation of this Proxy.
`Proxy.Type` `type()` Returns the proxy type.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### NO_PROXY

    public static final Proxy NO_PROXY

A proxy setting that represents a `DIRECT` connection, basically telling the protocol handler not to use any proxying. Used, for instance, to create sockets bypassing any other global proxy settings (like SOCKS):

`Socket s = new Socket(Proxy.NO_PROXY);`

### Constructor Detail

#### Proxy

    public Proxy(Proxy.Type type,
         SocketAddress sa)

Creates an entry representing a PROXY connection. Certain combinations are illegal. For instance, for types Http, and Socks, a SocketAddress must be provided.

Use the `Proxy.NO_PROXY` constant for representing a direct connection.

Parameters:
  `type` - the `Type` of the proxy
  `sa` - the `SocketAddress` for that proxy
Throws:
  `IllegalArgumentException` - when the type and the address are incompatible

### Method Detail

#### type

    public Proxy.Type type()

Returns the proxy type.

Returns:
  a Type representing the proxy type

#### address

    public SocketAddress address()

Returns the socket address of the proxy, or `null` if its a direct connection.

Returns:
  a `SocketAddress` representing the socket end point of the proxy

#### toString

    public String toString()

Constructs a string representation of this Proxy. This String is constructed by calling toString() on its type and concatenating " @ " and the toString() result from its address if its type is not `DIRECT`.

Overrides:
  `toString` in class `Object`
Returns:
  a string representation of this object.

#### equals

    public final boolean equals(Object obj)

Compares this object against the specified object. The result is `true` if and only if the argument is not `null` and it represents the same proxy as this object.

Two instances of `Proxy` represent the same address if both the SocketAddresses and type are equal.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - the object to compare against.
Returns:
  `true` if the objects are the same; `false` otherwise.
See Also:
  `InetSocketAddress.equals(java.lang.Object)`

#### hashCode

    public final int hashCode()

Returns a hashcode for this Proxy.

Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code value for this Proxy.
See Also:
  `Object.equals(java.lang.Object)`, `Hashtable`

Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.