我在 Android Studio 中有一个功能性应用程序,它依赖于连接到本地数据库。在以下问题中,如何将我的 Android 应用程序连接到数据库服务器?他们给出了一个很好的一般性答案,但我的问题更具体一些。
我通过 XAMPP 控制面板进行连接,通过 mysql 进行连接。遵循这些 youtube 教程:从 0 连接到 Android 中的数据库,解释了如何在本地建立连接,并介绍了 XAMPP 安装目录中 htdocs 文件夹中的文件。然后,教程将解释如何在 Android Studio 中创建一个通过提供 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,但现在您必须指向您的 Web 服务器,例如:
现在
PHP
,您拥有的文件CRUD
必须将它们存储在您的 WebService 以及您的数据库中。请注意,可能需要更改某些属性,例如 DB 名称、DB 密钥、某些 WS 需要为连接准备的语句等。这将取决于您的 WS 配置。由于现在在您的应用程序中使用互联网将是必不可少的,我建议您为这些情况添加验证。
在权限方面,您应该检查您的“物理服务器”是否接受远程连接,您
PHP
是否已准备好声明(检查文档)以提高安全性等。而对于Android Studio的部分,你至少要给互联网的那些。
如果您有任何疑问,我很乐意为您提供尽可能多的帮助...