Java ftpclient应用程序无法连接
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java ftpclient应用程序无法连接,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2577字,纯文字阅读大概需要4分钟。
内容图文
![Java ftpclient应用程序无法连接](/upload/InfoBanner/zyjiaocheng/658/1cfaf19da40a41289bcccd06f00ebc18.jpg)
我是android和java编程的新手.我写以下代码以连接到ftp服务器
public class NewMainActivity extends Activity {
TextView Display;
//declare a public FTP client object.
public FTPClient mFTPClient = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_main);
final TextView Display = (TextView) findViewById(R.id.tvResults);
try {
mFTPClient = new FTPClient();
// connecting to the host
mFTPClient.connect("www.filegenie.com",21);
// now check the reply code, if positive mean connection success
if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
// login using username & password
boolean status = mFTPClient.login("user", "MyPassword");
// Set File Transfer Mode
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
mFTPClient.enterLocalPassiveMode();
Display.setText("Correct"+ String.valueOf(status)); //return status;
}
}catch(Exception e) {
Display.setText(" Exception message is = "+e.getMessage()+" Reply code = "+mFTPClient.getReplyCode());
}
}
当我运行此代码时,没有得到任何特定的错误,但是程序没有执行mFTPClient.connect方法,并跳转到“异常”部分,我得到“ null”作为异常getMessage,得到“ 0”作为ReplyCode.
我已经导入了所有必需的文件,例如
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
我正在使用eclipse和ADT Build v22.0.1-685705.
我还在android项目的lib中包含了commons-net-3.3,commons-net-3.3-sources和commons-net-examples-3.3文件,还包括了Java文件和
commons-net-3.3-src | src |主| Java |组织| apache |公地|创建文件夹org | net文件夹到Android项目的src文件夹apache |公地|净.
我不知道是什么问题.
在这方面,谁能帮助我.
可以使用商业ftp客户端访问同一服务器.
提前致谢.
解决方法:
我已经尝试过您的代码,它可以正常工作.根据您得到的响应代码,我假设尚未建立与服务器的连接.确保您已在清单文件中为您的应用授予INTERNET权限:
<uses-permission android:name="android.permission.INTERNET" />
编辑:从异常堆栈跟踪很明显,您正在尝试从主线程执行此代码.在Android 3.0(Honeycomb)或更高版本中,默认情况下不允许您在UI线程中执行任何网络调用.原因很简单:网络调用可能会无限期地阻塞,从而有效冻结应用程序UI.
您有两种解决方法:
懒惰方式-禁用therad检查网络呼叫:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll()
.build();
StrictMode.setThreadPolicy(policy);
您始终可以使用再次启用线程检查
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.penaltyDeath()
.build();
StrictMode.setThreadPolicy(policy);
正确的方法-使用AsyncTask从后台工作线程执行FTP调用.看一下here,以获取有关AsyncTasks的示例和全面说明.
内容总结
以上是互联网集市为您收集整理的Java ftpclient应用程序无法连接全部内容,希望文章能够帮你解决Java ftpclient应用程序无法连接所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。