Я недавно только начал разработку приложений для Android.
Мое приложение требует от меня подключения к базе данных MySQL. Поэтому я использую FTP-сервер для хранения своих файлов PHP. Для доступа к базе данных приложение на телефоне Android должно быть подключено к FTP-серверу.
Я пытаюсь подключиться к серверу ftp, но приложение выдает:
java.lang.IllegalStateException: схема 'ftp' не зарегистрирована
package com.example.login2;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.util.Log;
import org.apache.commons.net.ftp.*;
public class login2 extends Activity {
EditText un,pw;
TextView error;
Button ok;
public boolean mConnect;
public FTPClient mFTPClient = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
un=(EditText)findViewById(R.id.et_un);
pw=(EditText)findViewById(R.id.et_pw);
ok=(Button)findViewById(R.id.btn_login);
error=(TextView)findViewById(R.id.tv_error);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mConnect = ftpConnect("ftp.example.comule.com", "name","passwordxxx", 21);
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("username", un.getText().toString()));
postParameters.add(new BasicNameValuePair("password", pw.getText().toString()));
//String valid = "1";
String response = null;
try {
response = CustomHttpClient.executeHttpPost("ftp://a5021174@matthewkee.comule.com/footprint/login.php", postParameters);
String res=response.toString();
// res = res.trim();
res= res.replaceAll("\\s+","");
//error.setText(res);
if(res.equals("1"))
error.setText("Correct Username or Password");
else
error.setText("Sorry!! Incorrect Username or Password");
} catch (Exception e) {
un.setText(e.toString());
}
}
});
}
public boolean ftpConnect(String host, String username, String password, int port)
{
try {
mFTPClient = new FTPClient();
// connecting to the host
try{
mFTPClient.connect(host, port);
}catch(Exception e)
{
Toast toast1 = Toast.makeText(getApplicationContext(), "This is the exception thrown: "+e, 1000000);
toast1.show();
}
// now check the reply code, if positive mean connection success
if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
// login using username & password
boolean status = mFTPClient.login(username, password);
//toast.show();
/* Set File Transfer Mode
*
* To avoid corruption issue you must specified a correct
* transfer mode, such as ASCII_FILE_TYPE, BINARY_FILE_TYPE,
* EBCDIC_FILE_TYPE .etc. Here, I use BINARY_FILE_TYPE
* for transferring text, image, and compressed files.
*/
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
mFTPClient.enterLocalPassiveMode();
return status;
}
} catch(Exception e) {
Log.d("ftpConnectApp", "Error: could not connect to host " + host);
}
return false;
}
}