首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpURLConnection在使用主机名时无法解析主机

问HttpURLConnection在使用主机名时无法解析主机
EN

Stack Overflow用户
提问于 2015-10-16 12:56:44
回答 1查看 1.8K关注 0票数 1

我已经检查了大多数关于同一个问题的主题,但是我找不到解决办法。

我的Android应用程序使用HttpURLConnection连接到WCF服务,当我使用承载该服务的机器的IP地址时,它工作得很好。但是,当我用主机名替换它时,它无法连接。我所拥有的连接方法是相当标准的:

代码语言:javascript
复制
public static String getData(RequestPackage requestPackage) {
        BufferedReader reader = null;
        HttpURLConnection con = null;
        String uri = requestPackage.getUri();
        String response = "";

        try {
            URL url = new URL(uri);
            con = (HttpURLConnection) url.openConnection();
            con.setReadTimeout(requestPackage.getReadTimeout());
            con.setConnectTimeout(requestPackage.getConTimeout());
            con.setRequestMethod(requestPackage.getMethod());
            con.setDoInput(requestPackage.isDoInput());
            con.setDoOutput(requestPackage.isDoOutput());

            JSONObject user = new JSONObject(requestPackage.getParams());

            OutputStream os = con.getOutputStream(); // the exception is thrown here
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
            writer.write(user.toString());
            writer.flush();
            writer.close();
            os.close();

            // Get response from the service
            int responseCode = con.getResponseCode();

            if (responseCode == HttpURLConnection.HTTP_OK) {
                // more code...
            }else
                // more code

例外是:

java.net.UnknownHostException:无法解析主机"myHostname":没有与主机名关联的地址“

myHostname是我真正的主机名。

当我在我的PC上使用相同的url (包括IP和主机名)时,它工作得很好。

在电话里,只有当我使用IP的时候,它才能工作。无论是在应用程序中还是在移动浏览器中。

我在AndroidManifest.xml中添加了必要的权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

它是否具有对承载服务的服务器的权限?它是一个内部服务器,所有机器都连接到一个内部Wi网络。但它适用于IP..。

编辑:我忘记提到我使用的是物理设备,而不是模拟器。

EN

回答 1

Stack Overflow用户

发布于 2021-08-21 09:16:19

没关系的。安卓告诉你,手机无法解析"myHostname“这个名字。这取决于网络的拓扑结构。我认为电话是连接在接入点上的wifi,该接入点与您的pc和您的myHostname主机所在的局域网有有线连接。您的pc有一个dns服务器的局域网连接,或只是解决名称与局域网广播。当然,您还没有在您的手机上使用的连接上配置dns服务器。如果您的局域网上有dns服务器,而不是在连接上设置它,否则我认为电话无法通过广播解决问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33171092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档