-
apache commons 在 android里异常10
我想在android里实现ftp上传文件功能,用了apache commons ftp. 在android外边测试
FTPClient ftpClient = new FTPClient(); ftpClient.connect(InetAddress.getByName(server)); ftpClient.login(user, password); FileInputStream is = new FileInputStream(new File("/data/testftp.txt")); ftpClient.storeFile("aaaa.txt", is); ftpClient.logout(); ftpClient.disconnect();
这段代码放在android外边执行,就可以上传。但是在android里总是有异常。根据log,可以看到已经登录,就是执行storeFile的时候,异常:
12-25 10:22:21.120: ERROR/SOCKETLOG(1721): add_recv_stats recv 0
12-25 10:22:21.130: WARN/System.err(1721): org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
12-25 10:22:21.130: WARN/System.err(1721): at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:297)
12-25 10:22:21.130: WARN/System.err(1721): at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:490)
12-25 10:22:21.130: WARN/System.err(1721): at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
12-25 10:22:21.130: WARN/System.err(1721): at org.apache.commons.net.ftp.FTP.port(FTP.java:862)
12-25 10:22:21.130: WARN/System.err(1721): at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:463)
12-25 10:22:21.130: WARN/System.err(1721): at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:374)
12-25 10:22:21.142: WARN/System.err(1721): at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1379)
12-25 10:22:21.142: WARN/System.err(1721): at com.motorola.blur.ftp.FtpUpLoad$1.onClick(FtpUpLoad.java:122)
12-25 10:22:21.142: WARN/System.err(1721): at android.view.View.performClick(View.java:2109)问题解决了。 在ftpClient.storeFile("aaaa.txt", is) 前面加一行:
ftpClient.enterLocalPassiveMode();
对 ftpClient里四种工作方式还不是很明白,哪位大侠给解释一下?
2008年12月25日 10:53
相关推荐
这里的"Apache Commons JAR 包"特别提到了两个子项目:Commons IO 和 Commons FileUpload,它们在Android文件上传服务端扮演着重要角色。 **Commons IO** Commons IO 是一个专门处理输入/输出操作的Java库。它提供...
修改后的Apache Commons Codec 1.10的jar包, 可以解决Android端加密时出现java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String的异常问题。
首先,为了在项目中使用Apache Commons Email库,你需要将"commons-email-1.5.jar"文件引入到你的Android项目中。传统的做法是将这个JAR文件放在项目的"libs"目录下。在Android Studio中,完成这一步之后,你需要在...
本教程将深入讲解如何利用Apache Commons Net库的3.3版本在Android应用中实现FTP功能。 首先,Apache Commons Net是一个Java库,提供了一系列用于网络通信的类和实用工具,包括FTP客户端组件。在Android项目中,...
本文将详细讲解如何在Android应用中使用Apache Commons Net库进行FTP操作,并提供一个具体的`ftpDemo`示例。 Apache Commons Net是Apache软件基金会的一个开源项目,它提供了一系列用于网络编程的实用工具,其中...
在这个压缩包"commons-net-3.3-3.4-3.5-3.6.zip"中,包含了Apache Commons Net库的四个不同版本:3.3、3.4、3.5和3.6,这使得开发者可以根据项目的具体需求选择适合的版本。 Apache Commons Net库是Apache软件基金...
Apache Commons Net提供了丰富的异常类,如FTPException和FTPReplyParseException,帮助开发者更好地捕获和处理错误。此外,FTPClient提供了disconnect()方法,用于关闭与服务器的连接,确保资源的有效释放。 七、...
10. **异常处理**:在进行网络操作时,务必捕获并处理可能出现的异常,如`FTPException`、`SocketException`等。 除了基本的FTP操作,Apache Commons Net还提供了更高级的功能,如文件重命名、删除、目录操作、...
在提供的标题和描述中提到了三个关键的Java Archive (JAR) 文件,它们是Apache Commons项目的一部分,分别是: 1. **commons-codec-1.3.jar**:这个JAR文件包含了Apache Commons Codec库的1.3版本。Codec库提供了...
Apache Commons Lang是Java编程语言中的一个实用工具库,它提供了许多在标准Java API中未涵盖的高级字符串和对象处理功能。这个"commons-lang-2.4.rar"压缩包包含了两个子文件,分别是"commons-lang-2.4-bin.zip"和...
在实际开发中,Apache Commons Codec库通常与其他Java库(如HTTPClient或Apache HttpClient)结合使用,以处理数据传输过程中的编码问题。例如,当发送HTTP请求时,我们需要对URL参数进行URL编码;在接收二进制响应...
commons-codec-1.13.jar是主要解决这个包放到android项目里出现org.apache.commons.codec.binary.Hex.encodeHexString的异常,我已经将源码中的错误解决掉,直接下载使用即可。
在处理JSON时,Lang库可以协助进行字符串的格式化、日期的转换,或者在解析JSON过程中处理异常情况。 4. **ezmorph-1.0.4.jar**:EZMorph是一个Java库,主要功能是对象转换。它提供了一种动态类型安全的方式来将一...
《Apache Commons Codec库从1.11到1.13的演进与应用》 Apache Commons Codec库是Java开发中的一个重要工具,它提供了一系列用于编码和解码的实用类,涵盖了音频、数字、字符串等多种编码格式。从1.11到1.13的版本...
在Java开发中,Apache Commons Lang是一个非常重要的库,它提供了许多实用的类和方法,扩展了Java的标准库。以下是这个库中的一些关键知识点: 1. **String utilities**:Lang库提供了丰富的字符串处理方法,如`...
总结,Apache Commons HttpClient 3.1在Android开发中扮演了重要角色,尽管现在有其他替代方案,但理解其工作原理和使用方法仍然是提升网络编程能力的重要环节。通过深入学习和实践,开发者可以更好地理解和控制HTTP...
Apache Commons FileUpload是Apache Commons项目的一部分,它专门设计用来处理HTTP协议中的多部分表单数据,也就是通常在文件上传时遇到的数据格式。这个库使得开发者能够轻松地解析请求中的文件内容,将它们存储到...
在 Android Studio 中,如果由于网络问题或其他原因导致无法通过 Gradle 自动下载 Apache Commons Lang,你可以将 `apacher_commons-lang3.1.jar` 文件放入项目的 `libs` 目录,然后在 `build.gradle` 文件中添加...
由于Android SDK本身并不直接支持FTP,我们通常会借助第三方库,如Apache Commons Net。可以通过在build.gradle文件中添加以下依赖来引入: ```groovy dependencies { implementation 'commons-...