FTP到1and1.com(FTP to 1and1.com)

2019-10-23 01:33发布

下面的代码工作,以我试过其他两个网站,但不会被托管的1and1我的域名工作。 返回代码始终是500 - 永久负完成答复。

我知道我的连接,因为FTPReply.isPositiveCompletion(回复)返回true。 我既读取文件时关闭手机的存储,并在代码早期填充的字节数组发送它试了一下。 这是字节数组。 两种方法都返回500无论工作在其他网站。

如果我不使用enterLocalPassiveMode()的代码将停止对storeFile调用执行。 也不例外,没有套接字超时。 它只是到此为止和异步任务不会在会议上再次呼吁。 该代码没有做到这一点的其他网站。

我已经试过ASCII和二进制文件类型。 都返回500的1and1网站说,用我的域名和端口21。我可以CoreFTP连接并读取和使用这两种我已经设置了帐户写。

我也累了ftp4j,并与所有的场景相同的反应,以便回去的Apache,因为代码已经具有强大的错误捕获写入。

我都试过mydomain.com和ftp.mydomian.com。 500两。 我也尝试了四点,我可以在CoreFTP窗口中看到的,但我得到“无法解析主机名”与Apache的Java代码。 也许不是一个静态的IP?

这是CoreFTP做什么。 它连接端口21,然后进入到被动模式和ASCII数据连接。

这是一个长镜头,但任何人都曾经通过FTP到Android Studio中使用Java他们的1and1域?

格雷格

解决mydomain.com ...
连接插座#5684到xx.xx.xx.xxx,端口21 ... 220 Microsoft FTP服务
USER ftp79815757-0
需要ftp79815757-0 331密码。
PASS **********
230用户登录。
SYST
215 Windows_NT
保活过... PWD
257 “/ ftp79815757-0” 是当前目录。
PASV
227进入被动模式(XX,XXX,XX,XXX,XXX,XXX)。
LIST
连接插座#5700 XX.XX.XX.XX,端口62894 ... 150打开ASCII模式的数据连接。
226传输完成。
在0.094秒传送51个字节的

FTPClient mFtpClient = new FTPClient();
String ip = "my domain dot com";
String userName = "ftp79815757-0";
String pass = "password";

mFtpClient.connect(InetAddress.getByName(ip));
mFtpClient.login(userName, pass);
int reply = mFtpClient.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
    mFtpClient.setFileType(FTP.BINARY_FILE_TYPE);
    //one thread said this would do the trick
    mFtpClient.enterLocalPassiveMode();
    mFtpClient.enterRemotePassiveMode();

    InputStream stream = new ByteArrayInputStream(imageData);

    //I have two accounts. One points to images_in
    /*if (!mFtpClient.changeWorkingDirectory("images_in")) {
       Log.e("ChangeDir", String.valueOf(mFtpClient.getReplyCode()));
    }*/

    if (!mFtpClient.storeFile("remoteName.jpg", stream)) {
        Log.e("FTPUpload", String.valueOf(mFtpClient.getReplyCode()));
    }

    stream.close();
    mFtpClient.disconnect();
}

Answer 1:

Finally got it. The main problem was that I was using an old version of the Apache library. The Jar I was using was commons-net-1.4.jar. Someone in another thread pointed me to commons-net-3.3.jar.

I commented out both mFtpClient.enterLocalPassiveMode() and mFtpClient.enterRemotePassiveMode(), and with some trail and error it worked with FTP.BINARY_FILE_TYPE and not ASCII_FILE_TYPE. ASCII got the file there, but it was garbage.



文章来源: FTP to 1and1.com
标签: java android ftp