Commons Net FTPHTTPClient: imigudu ye-proxy ye-HTTP ye-FTP engasebenzi
Hambisa ukulawula kwe-FTP kanye nokuxhumana kwedatha okungasebenzi ngokusebenzisa i-proxy ye-HTTP ngeklayenti elikhethekile le-Commons Net.
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.