如何让Android网络请求查找在Bonjour注册的本地域名?
尝试使用Volley获取数据时出现此错误。
java.net.UnknownHostException: Unable to resolve host "xxxxx.local": No address associated with hostname
答案 0 :(得分:0)
如果您控制整个网络堆栈,则可以通过Android的NsdManager执行DNS服务发现(DNS-SD)。我从文档中推荐此指南:
https://developer.android.com/training/connect-devices-wirelessly/nsd
简而言之,可以归结为:
mNsdManager.discoverServices(
SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
您可以通过检查Mac上dns-sd
的响应来交叉引用您要解析的服务:
$ dns-sd -Z . .
_http._tcp PTR myserver._http._tcp
myserver._http._tcp SRV 0 0 80 myserver.local. ; Replace with unicast FQDN of target host
myserver._http._tcp TXT ""
在NsdManager.DiscoveryListener回调中,您可以从NsdServiceInfo.getHost()
获取相应的IP地址。
答案 1 :(得分:-1)
您是否尝试过使用localhost的IP? 127.0.0.1或10.0.2.2:80?