У меня есть функциональное приложение в Android Studio, которое использует подключение к локальной базе данных. В следующем вопросе Как подключить мое Android-приложение к серверу базы данных? Они дают довольно хороший общий ответ, но мой вопрос немного более конкретен.
Я подключаюсь через панель управления XAMPP, для подключения через mysql. Следуя этим руководствам на YouTube: подключение к базе данных в Android с 0 , объясняется, как выполнить подключение локально, представляя файлы в папке htdocs в каталоге установки XAMPP. Затем в руководствах объясняется, как создать класс в студии Android, который подключается к моему локальному серверу, указав IP-адрес.
Моя папка htdocs, где у меня есть файлы php, которые мне нужны для подключения. Эти файлы возвращают мне объекты JSON.
Мой вопрос заключается в следующем:
Теперь, когда я хочу подключиться не к локальному серверу, а к внешнему серверу, есть ли способ добиться этого, сохраняя при этом файловую систему php, которая у меня есть сейчас?
Класс, который я использую, например, для подключения к файлу входа, который позволяет мне установить первое подключение, выглядит следующим образом:
package com.tigestion.guillermo.agendagui;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Guillermo on 04/10/2017.
*/
public class LoginRequest extends StringRequest{
private static final String LOGIN_REQUEST_URL =
"http://192.168.1.159/Login.php";
private Map<String, String> params;
public LoginRequest(String username, String password,
Response.Listener<String> listener){
super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("us_usuario", username);
params.put("us_clave", password);
}
@Override
public Map<String, String> getParams(){
return params;
}
}
Есть ли способ изменить его так, чтобы вместо подключения к моему локальному серверу он подключался к внешнему серверу?
(отредактировано)
В моем файле Gradle у меня есть следующая строка:
compile 'com.android.volley:volley:1.0.0'
И мой файл манифеста содержит следующее:
<uses-permission android:name="android.permission.INTERNET" />
Нужны ли мне какие-либо еще разрешения, кроме этих?
В следующей строке кода вы указываете на свой сервер:
В вашем случае вы используете IP-адрес своего компьютера, но теперь вы должны указать, например, свой веб-сервер:
Теперь ваши файлы,
PHP
где у вас есть,CRUD
должны хранить их в вашем веб-сервисе, а также в вашей базе данных. Обратите внимание, что некоторые атрибуты могут потребоваться изменить, например, имя БД, ключ БД, некоторые WS требуют подготовленных операторов для соединений и т. д. Это будет зависеть от вашей конфигурации WS.Поскольку теперь использование Интернета будет иметь важное значение в вашем приложении, я предлагаю вам добавить проверки для этих случаев.
Что касается разрешения, вы должны убедиться, что ваш «физический сервер» принимает удаленные подключения, что вы
PHP
хорошо справляетесь с подготовленными заявлениями ( проверьте документацию ) для большей безопасности и т. д.а со стороны Android Studio надо давать те из интернета хотя бы.
Если у вас есть сомнения, я с радостью помогу вам, чем смогу...