1

我在向 FTP 服务器发送请求以下载文件时需要帮助......我已经编写了以下代码来使用 HTTP 下载文件,它可以成功运行,但我不知道如何为 FTP 做......因为我已经使用套接字进行连接,它必须通过这种方式完成,只是建议我下载 FTP 文件的请求(发送到服务器)的格式是什么......

///////////////////////////编码////////////////////// //////////////////////////////

 URL url_of_file=new URL("http://fs36.filehippo.com/4281/856e12e1656d480da79ef2b40581f75e/npp.6.2.Installer.exe");
       String hostaddress=url_of_file.getHost();

       Socket mysocket3 = new java.net.Socket();

    //create socket to server for HTTP use port 80 for FTP use 21 //

       mysocket3.connect(new InetSocketAddress(hostaddress,80));


        OutputStream os = mysocket3.getOutputStream();
         int file_size=5860557;

       //REQUEST Formate for HTTP ..........//

         String getRequest = "GET " + url_of_file + " HTTP/1.1\r\n" +            
            "Host: "+ hostaddress + "\r\n" + 
            "Range: bytes=0-"+file_size+" \r\n\r\n";  

         os.write(getRequest.getBytes("UTF-8"));

        os.flush();
        InputStream in = mysocket3.getInputStream();



        // 2. Recieving the  data,..............
4

2 回答 2

5

FTP 是与 HTTP不同的协议。FTP 中没有“GET”请求。要了解请求和响应的外观,请阅读RFC959 FTP 规范。

从 Java 的角度来看,您可以尝试org.apache.commons.net.ftp.FTPClient

于 2012-10-21T07:14:58.757 回答
0

您可以使用org.apache.commons.net.ftp.FTPClient

FTPClient f = new FTPClient();
f.connect(server);
f.login(username, password);
于 2012-10-21T07:18:24.697 回答