安卓APP与Java桌面API通信:非本地环境Post请求IP地址咨询
解决实体手机访问本地Java应用API的地址问题
Got it, let's walk through exactly what you need to do to get your physical Android phone talking to your laptop's Java API:
第一步:确保设备在同一局域网
你的手机和笔记本必须连接到同一个Wi-Fi网络(核心前提,跨局域网的话需要额外的端口映射操作,先搞定同局域网的情况)。第二步:找到笔记本的局域网IP地址
这是替换模拟器专用10.0.2.2的关键,不同系统的操作方式:- Windows:打开命令提示符(CMD),输入
ipconfig,找到「无线局域网适配器 WLAN」下的IPv4地址,比如192.168.3.12 - macOS/Linux:打开终端,输入
ifconfig(Linux也可以用ip addr),找到Wi-Fi接口对应的inet地址,比如192.168.1.45
- Windows:打开命令提示符(CMD),输入
第三步:替换请求地址
把原来的请求地址里的10.0.2.2换成刚才找到的局域网IP,比如:post("http://192.168.3.12:8080/api/v1/locations", json)必看的注意事项
- 关闭笔记本的防火墙(或者在防火墙设置里添加入站规则,允许8080端口的外部访问),不然你的手机请求会被防火墙直接拦截
- 确认你的Java应用的API服务是绑定到
0.0.0.0而不是localhost。如果服务只绑定localhost,它只会监听本地请求,局域网内的其他设备(比如你的手机)是访问不到的 - 可以先在手机浏览器里访问
http://[你的笔记本IP]:8080,如果能看到API的响应或者相关页面,说明连通性没问题,再去测试APP的请求
内容的提问来源于stack exchange,提问作者Anass Tahiri
相关产品推荐
相关产品推荐

