Package org.apache.commons.net.ftp
Class FTPHTTPClient
- java.lang.Object
-
- org.apache.commons.net.SocketClient
-
- org.apache.commons.net.ftp.FTP
-
- org.apache.commons.net.ftp.FTPClient
-
- org.apache.commons.net.ftp.FTPHTTPClient
-
- All Implemented Interfaces:
Configurable
public class FTPHTTPClient extends FTPClient
Experimental attempt at FTP client that tunnels over an HTTP proxy connection.- Since:
- 2.2
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.commons.net.ftp.FTPClient
FTPClient.HostnameResolver, FTPClient.NatServerResolverImpl
-
-
Field Summary
Fields Modifier and Type Field Description private Base64
base64
private static byte[]
CRLF
private java.lang.String
proxyHost
private java.lang.String
proxyPassword
private int
proxyPort
private java.lang.String
proxyUsername
private java.lang.String
tunnelHost
-
Fields inherited from class org.apache.commons.net.ftp.FTPClient
ACTIVE_LOCAL_DATA_CONNECTION_MODE, ACTIVE_REMOTE_DATA_CONNECTION_MODE, FTP_SYSTEM_TYPE, FTP_SYSTEM_TYPE_DEFAULT, PASSIVE_LOCAL_DATA_CONNECTION_MODE, PASSIVE_REMOTE_DATA_CONNECTION_MODE, SYSTEM_TYPE_PROPERTIES
-
Fields inherited from class org.apache.commons.net.ftp.FTP
_commandSupport_, _controlEncoding, _controlInput_, _controlOutput_, _newReplyString, _replyCode, _replyLines, _replyString, ASCII_FILE_TYPE, BINARY_FILE_TYPE, BLOCK_TRANSFER_MODE, CARRIAGE_CONTROL_TEXT_FORMAT, COMPRESSED_TRANSFER_MODE, DEFAULT_CONTROL_ENCODING, DEFAULT_DATA_PORT, DEFAULT_PORT, EBCDIC_FILE_TYPE, FILE_STRUCTURE, LOCAL_FILE_TYPE, NON_PRINT_TEXT_FORMAT, PAGE_STRUCTURE, RECORD_STRUCTURE, REPLY_CODE_LEN, STREAM_TRANSFER_MODE, strictMultilineParsing, TELNET_TEXT_FORMAT
-
Fields inherited from class org.apache.commons.net.SocketClient
_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL
-
-
Constructor Summary
Constructors Constructor Description FTPHTTPClient(java.lang.String proxyHost, int proxyPort)
FTPHTTPClient(java.lang.String proxyHost, int proxyPort, java.lang.String proxyUser, java.lang.String proxyPass)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected java.net.Socket
_openDataConnection_(int command, java.lang.String arg)
Deprecated.(3.3) UseFTPClient._openDataConnection_(FTPCmd, String)
insteadprotected java.net.Socket
_openDataConnection_(java.lang.String command, java.lang.String arg)
Establishes a data connection with the FTP server, returning a Socket for the connection if successful.void
connect(java.lang.String host, int port)
Opens a Socket connected to a remote host at the specified port and originating from the current host at a system assigned port.private java.io.BufferedReader
tunnelHandshake(java.lang.String host, int port, java.io.InputStream input, java.io.OutputStream output)
-
Methods inherited from class org.apache.commons.net.ftp.FTPClient
__createParser, __parsePathname, _connectAction_, _connectAction_, _openDataConnection_, _parseExtendedPassiveModeReply, _parsePassiveModeReply, _retrieveFile, _retrieveFileStream, _storeFile, _storeFileStream, abort, allocate, allocate, appendFile, appendFileStream, changeToParentDirectory, changeWorkingDirectory, completePendingCommand, configure, deleteFile, disconnect, doCommand, doCommandAsStrings, enterLocalActiveMode, enterLocalPassiveMode, enterRemoteActiveMode, enterRemotePassiveMode, features, featureValue, featureValues, getAutodetectUTF8, getBufferSize, getControlKeepAliveReplyTimeout, getControlKeepAliveTimeout, getCopyStreamListener, getDataConnectionMode, getEntryParser, getListArguments, getListHiddenFiles, getModificationTime, getPassiveHost, getPassiveLocalIPAddress, getPassivePort, getReceiveDataSocketBufferSize, getRestartOffset, getSendDataSocketBufferSize, getStatus, getStatus, getSystemName, getSystemType, hasFeature, hasFeature, initiateListParsing, initiateListParsing, initiateListParsing, isRemoteVerificationEnabled, isUseEPSVwithIPv4, listDirectories, listDirectories, listFiles, listFiles, listFiles, listHelp, listHelp, listNames, listNames, login, login, logout, makeDirectory, mdtmFile, mlistDir, mlistDir, mlistDir, mlistFile, printWorkingDirectory, reinitialize, remoteAppend, remoteRetrieve, remoteStore, remoteStoreUnique, remoteStoreUnique, removeDirectory, rename, restart, retrieveFile, retrieveFileStream, sendNoOp, sendSiteCommand, setActiveExternalIPAddress, setActivePortRange, setAutodetectUTF8, setBufferSize, setControlKeepAliveReplyTimeout, setControlKeepAliveTimeout, setCopyStreamListener, setDataTimeout, setFileStructure, setFileTransferMode, setFileType, setFileType, setListHiddenFiles, setModificationTime, setParserFactory, setPassiveLocalIPAddress, setPassiveLocalIPAddress, setPassiveNatWorkaround, setPassiveNatWorkaroundStrategy, setReceieveDataSocketBufferSize, setRemoteVerificationEnabled, setReportActiveExternalIPAddress, setRestartOffset, setSendDataSocketBufferSize, setUseEPSVwithIPv4, storeFile, storeFileStream, storeUniqueFile, storeUniqueFile, storeUniqueFileStream, storeUniqueFileStream, structureMount
-
Methods inherited from class org.apache.commons.net.ftp.FTP
__getReplyNoReport, __noop, abor, acct, allo, allo, appe, cdup, cwd, dele, eprt, epsv, feat, getCommandSupport, getControlEncoding, getReply, getReplyCode, getReplyString, getReplyStrings, help, help, isStrictMultilineParsing, isStrictReplyParsing, list, list, mdtm, mfmt, mkd, mlsd, mlsd, mlst, mlst, mode, nlst, nlst, noop, pass, pasv, port, pwd, quit, rein, rest, retr, rmd, rnfr, rnto, sendCommand, sendCommand, sendCommand, sendCommand, sendCommand, sendCommand, setControlEncoding, setStrictMultilineParsing, setStrictReplyParsing, site, smnt, stat, stat, stor, stou, stou, stru, syst, type, type, user
-
Methods inherited from class org.apache.commons.net.SocketClient
addProtocolCommandListener, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, fireReplyReceived, getCharset, getCharsetName, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemote
-
-
-
-
Field Detail
-
proxyHost
private final java.lang.String proxyHost
-
proxyPort
private final int proxyPort
-
proxyUsername
private final java.lang.String proxyUsername
-
proxyPassword
private final java.lang.String proxyPassword
-
CRLF
private static final byte[] CRLF
-
base64
private final Base64 base64
-
tunnelHost
private java.lang.String tunnelHost
-
-
Method Detail
-
_openDataConnection_
@Deprecated protected java.net.Socket _openDataConnection_(int command, java.lang.String arg) throws java.io.IOException
Deprecated.(3.3) UseFTPClient._openDataConnection_(FTPCmd, String)
insteadEstablishes a data connection with the FTP server, returning a Socket for the connection if successful. If a restart offset has been set withFTPClient.setRestartOffset(long)
, a REST command is issued to the server with the offset as an argument before establishing the data connection. Active mode connections also cause a local PORT command to be issued.- Overrides:
_openDataConnection_
in classFTPClient
- Parameters:
command
- The int representation of the FTP command to send.arg
- The arguments to the FTP command. If this parameter is set to null, then the command is sent with no argument.- Returns:
- A Socket corresponding to the established data connection. Null is returned if an FTP protocol error is reported at any point during the establishment and initialization of the connection.
- Throws:
java.lang.IllegalStateException
- if connection mode is not passivejava.io.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.
-
_openDataConnection_
protected java.net.Socket _openDataConnection_(java.lang.String command, java.lang.String arg) throws java.io.IOException
Establishes a data connection with the FTP server, returning a Socket for the connection if successful. If a restart offset has been set withFTPClient.setRestartOffset(long)
, a REST command is issued to the server with the offset as an argument before establishing the data connection. Active mode connections also cause a local PORT command to be issued.- Overrides:
_openDataConnection_
in classFTPClient
- Parameters:
command
- The text representation of the FTP command to send.arg
- The arguments to the FTP command. If this parameter is set to null, then the command is sent with no argument.- Returns:
- A Socket corresponding to the established data connection. Null is returned if an FTP protocol error is reported at any point during the establishment and initialization of the connection.
- Throws:
java.lang.IllegalStateException
- if connection mode is not passivejava.io.IOException
- If an I/O error occurs while either sending a command to the server or receiving a reply from the server.- Since:
- 3.1
-
connect
public void connect(java.lang.String host, int port) throws java.net.SocketException, java.io.IOException
Description copied from class:SocketClient
Opens a Socket connected to a remote host at the specified port and originating from the current host at a system assigned port. Before returning,_connectAction_()
is called to perform connection initialization actions.- Overrides:
connect
in classSocketClient
- Parameters:
host
- The name of the remote host.port
- The port to connect to on the remote host.- Throws:
java.net.SocketException
- If the socket timeout could not be set.java.io.IOException
- If the socket could not be opened. In most cases you will only want to catch IOException since SocketException is derived from it.java.net.UnknownHostException
- If the hostname cannot be resolved.
-
tunnelHandshake
private java.io.BufferedReader tunnelHandshake(java.lang.String host, int port, java.io.InputStream input, java.io.OutputStream output) throws java.io.IOException, java.io.UnsupportedEncodingException
- Throws:
java.io.IOException
java.io.UnsupportedEncodingException
-
-