I-Apache Commons Net ihlanganisa FTPHTTPClient ye-FTP ngokusebenzisa i-proxy ye-HTTP CONNECT. Isici sayo esiwusizo akusikho nje ukufinyelela embobeni yokungena ye-FTP: iphinde isungule imigudu ye-proxy yokuxhumana kwedatha okungasebenzi okusetshenziswa izinhlu nokudluliswa kwamafayela.

Isakhi sikhombisa indawo yokugcina ye-proxy kanye nobufakazi be-proxy obukhethiwe. Iseva ye-FTP isalokhu iyi-argument ye-connect, kanti i-login ithola i-akhawunti ye-FTP:

FTPHTTPClient ftp = new FTPHTTPClient(
    "proxy.example.net", 8080, proxyUser, proxyPassword
);

try {
    ftp.connect("ftp.example.net", 21);
    if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
        throw new IOException(ftp.getReplyString());
    }
    if (!ftp.login(ftpUser, ftpPassword)) {
        throw new IOException(ftp.getReplyString());
    }

    ftp.enterLocalPassiveMode();
    if (!ftp.setFileType(FTP.BINARY_FILE_TYPE)
            || !ftp.retrieveFile(remoteFile, output)) {
        throw new IOException(ftp.getReplyString());
    }
    ftp.logout();
} finally {
    if (ftp.isConnected()) {
        ftp.disconnect();
    }
}

Le ngxenye yokudlulisa icabanga ukuthi kukhona ukungeniswa kwe-FTP kwe-Commons Net, java.io.IOException, izinguquko zobufakazi ezinikezwa uhlelo lokusebenza kanye nokugeleza kokuphuma okuphethwe umbingeleli. I-remoteFile igama lefayela elihlosiwe ohlangothini lweseva. Uhlelo lokusebenza kufanele futhi luvala ukugeleza kokuphuma kwalo ngesikhathi esifanele.

Setha imodi engasebenzi ngemva kokuxhuma nangaphambi komsebenzi wedatha. Ukusetshenziswa kwe-FTPHTTPClient kwenqaba ukuxhumana kwedatha emodini esebenzayo. Emodini engasebenzi, ixoxisana ngendawo yedatha ne-FTP futhi ivule okunye ukuxhumana ku-proxy ye-HTTP, bese icela umgudu we-CONNECT kuleyo ndawo.

Lowo mugudu wesibili uchaza umkhawulo ojwayelekile: imvume ye-proxy embobeni yokulawula i-FTP ayanele. Izindawo namachweba avunyelwe kufanele ahlanganise izindawo zedatha ezingasebenzi zeseva. Ukubingelela nokungena okuphumelelayo kufakazela kuphela ukuthi indlela yokulawula yasebenza.

Ukusetshenziswa kunikeza ukuqinisekiswa kwe-proxy ye-Basic lapho kokubili igama lomsebenzisi nephasiwedi ye-proxy kukhona. Lokho kwehlukile ekushintshiswaneni kwe-FTP USER/PASS. I-proxy edinga enye indlela yokuqinisekisa idinga isixhumi esihambisanayo; isakhi asenzi zonke izinhlelo zitholakale.

I-Commons Net ibhala le klasi njengeyokuhlola, ngakho-ke yihlole ngokwemibandela yohlelo lokusebenza ne-proxy ngaphambi kokuyamukela. Iyiklayenti le-FTP, hhayi iklayenti le-FTPS noma le-SFTP. Ku-FTPS enesevisi ye-SOCKS etholakalayo, isixhumanisi se-socket-proxy se-FTPSClient iyindlela ehlukile yeklayenti. I-CONNECT inikeza indlela futhi ayibethelisi ngokwayo ubufakazi be-FTP noma okuqukethwe kwamafayela.

Gcina amaphutha exhunyiwe esigabeni owasikhiqizayo: ukwenqatshwa kwe-HTTP ngesikhathi kusethwa umgudu, ukwenqatshwa kokungena kwe-FTP, noma ukwehluleka kokudluliswa kwe-FTP/kedatha. Ukushintsha iphasiwedi ye-FTP akukwazi ukuxazulula inqubomgomo ye-proxy enqaba ichweba ledatha elingasebenzi.

Izihloko ezihlobene