基本上我的开发机器和手机都在同一个(WiFi)网络上,我需要能够通过我的PC向设备上的localhost上运行的服务发送和接收JSON(我在移动应用程序上工作)有一个在本地作为服务运行的组件。我看过Chrome的端口转发但无法让它工作。有人在Mac上使用它吗?
答案 0 :(得分:0)
如果你的开发者和你的手机在你的wifi网络的同一个子网上,你应该能够使用静态IP进行测试。不需要端口转发(除非您使用WAN IP或设置DNS服务,否则无法获得帮助)。
基本上,如果您的服务器的本地IP为192.168.1.17,请将其用作Android应用程序的端点。如果以相反的方式工作,有一些IP工具应用程序可以帮助您获得Android设备的IP。
答案 1 :(得分:0)
如果您在开发过程中只需要连接,只需使用手机的IP设置套接字就可以了。
发送脚本
import socket
HOST = '' # device ip
PORT = '' # your service's listening port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
with open("data.json", "rb") as f:
data = f.read()
s.send(data)
s.close()
接收方式几乎相同。
答案 2 :(得分:0)
管理解决这个问题:
在我的桌面计算机上使用“adb forward tcp:LOCALPORT tcp:REMOTEPORT”将服务正在侦听的端口(REMOTEPORT)转发到桌面上的本地端口(LOCALPORT)
我试图与之交谈的服务需要额外的auth标头,我在测试curl时没有添加。我使用'adb logcat'检索了auth标头所需的密钥(因为我的应用程序在启动时将其写入控制台)。要为每个请求添加身份验证标头,我使用了Chrome扩展程序(Postman)来自动添加auth标头来处理请求。
我现在可以在桌面上使用Chrome中的Postman向localhost:LOCALPORT发送请求,并将响应视为JSON。
仅供参考,我在设备上使用Couchbase Lite,并试图弄清楚如何与它进行对话以运行数据库查询。