Spring Boot 我无法使用物理电话连接到服务器和数据库

bzzcjhmw  于 2023-01-17  发布在  Spring
关注(0)|答案(1)|浏览(103)

我正在编程一个密码管理器应用程序与Android工作室和Spring启动作为后端和Mysql作为数据库。
我的服务器在我的计算机上的localhost:8080上,我的数据库也在localhost:3306上。
我的应用在Android Studio的模拟器上运行和通信良好,但当我尝试使用物理智能手机(三星Galaxy A80)连接时,它无法连接,我不明白为什么。它应该可以工作。
我试图将IP地址更改为我在Android Studio的改造中的手机上的IP地址。并更改端口,但它不起作用。
application.properties 服务器中的www.example.com

spring.datasource.url=jdbc:mysql://localhost:3306/PasswordManager?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=SakeSaske77
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update

这是Android Studio上的翻新服务设置

public class RetrofitService {

    private Retrofit retrofit;

    public RetrofitService() {
        initializeRetrofit();
    }

    private void initializeRetrofit() {
        retrofit = new Retrofit.Builder()
                .baseUrl("http://192.168.1.185" +
                        ":8080")
                .addConverterFactory(GsonConverterFactory.create(new Gson()))
                .build();
    }

    public Retrofit getRetrofit() {
        return retrofit;
    }

}
cs7cruho

cs7cruho1#

因为localhost只能从主机直接访问,主机是你的pc/笔记本电脑,你的物理电话连接到你的机器,而不是localhost,所以你需要一种方法来从你的电话访问你的机器的localhost,为此你需要使用adb命令,特别是,您需要使用以下命令将计算机的端口转移到电话:

adb reverse tcp:8008 tcp:8080

8080更改为您的localhost端口。
如果您没有安装adb(以及Android SDK提供的其他SDK平台工具),请下载它from here

相关问题