下面的代码工作,以我试过其他两个网站,但不会被托管的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();
}