即使有 Internet 权限,FTPClient 也无法解析主机
FTPClient cannot resolve host even with internet permission
我已将正确的权限添加到我的 AndroidManifest.XML
文件中,使我能够从我的应用程序连接到互联网
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.my_test_app">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".LogOn"></activity>
<activity android:name=".ftpDetails"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
但是,当尝试像这样建立 FTP 连接时
FTPClient FtpClient = new FTPClient();
FtpClient.connect(ftpServer + ftpFolder); // THIS IS WHERE THE ERROR OCCURS
FtpClient.login(ftpUser, ftpPass);
int reply = FtpClient.getReplyCode();
错误发生在FtpClient.connect(ftpServer + ftpFolder);
变量中的值的格式为
ftpServer = ftp://ftp.myServer.co.uk/mySite.co.uk/
ftpFolder = My Folder (Test)
我可以通过我电脑上的 Windows 文件资源管理器访问这个文件夹,所以我知道这是一个有效的路径,但是在应用程序中测试时我收到以下错误
Unable to resolve host "ftp://ftp.myServer.co.uk/mySite.co.uk/My Folder": No address associated with hostname
FTPClient.connect
方法(或者实际上是继承的SocketClient.connect
)的参数是hostname
,不是URL。
所以应该是:
ftpServer = "ftp.myServer.co.uk";
我已将正确的权限添加到我的 AndroidManifest.XML
文件中,使我能够从我的应用程序连接到互联网
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.my_test_app">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".LogOn"></activity>
<activity android:name=".ftpDetails"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
但是,当尝试像这样建立 FTP 连接时
FTPClient FtpClient = new FTPClient();
FtpClient.connect(ftpServer + ftpFolder); // THIS IS WHERE THE ERROR OCCURS
FtpClient.login(ftpUser, ftpPass);
int reply = FtpClient.getReplyCode();
错误发生在FtpClient.connect(ftpServer + ftpFolder);
变量中的值的格式为
ftpServer = ftp://ftp.myServer.co.uk/mySite.co.uk/
ftpFolder = My Folder (Test)
我可以通过我电脑上的 Windows 文件资源管理器访问这个文件夹,所以我知道这是一个有效的路径,但是在应用程序中测试时我收到以下错误
Unable to resolve host "ftp://ftp.myServer.co.uk/mySite.co.uk/My Folder": No address associated with hostname
FTPClient.connect
方法(或者实际上是继承的SocketClient.connect
)的参数是hostname
,不是URL。
所以应该是:
ftpServer = "ftp.myServer.co.uk";