当前位置: 首页 > 知识库问答 >
问题:

无法解析主机:URL没有与主机名关联的地址

路雅懿
2023-03-14

我有一个web服务调用来关闭一个JSON对象,它只有在我有IP地址而不是主机名的情况下才起作用。我一直很好地使用IP地址,但现在我需要有主机名。

    StringBuilder stringBuilder = new StringBuilder();
    HttpParams httpParams = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
    HttpConnectionParams.setSoTimeout(httpParams, 7000);
    DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
    HttpPost httpost = new HttpPost(URL);
    try {
        HashMap<String,String>  params = new HashMap<String,String>();
        // Login info
        params.put("username", edtUserName.getText().toString()); 
        params.put("password", edtPass.getText().toString());
        params.put("deviceOS", "Android");
        params.put("deviceOSVersion", android.os.Build.VERSION.RELEASE);
        params.put("language", "0");
        //JSON object holding the login info
        JSONObject holder = new JSONObject(params);

        StringEntity se = new StringEntity(holder.toString());

        httpost.setEntity(se);

        httpost.setHeader("Content-Type", "application/json");
        //Executing the call
        HttpResponse response = httpClient.execute(httpost);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (statusCode == 200) {
            HttpEntity entity = response.getEntity();
            InputStream inputStream = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line);
            }
            inputStream.close();
        } else {
            returnCode = -1;
            Log.d("JSON", "Failed to download file");
        }
    } catch (Exception e) {
        returnCode = -1;
        Log.d("readJSONFeed", e.getLocalizedMessage());
    }

    return stringBuilder.toString();

如果有人有好主意,谢谢。

共有1个答案

锺离珂
2023-03-14

我把这些线去掉就修好了

HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
HttpConnectionParams.setSoTimeout(httpParams, 7000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);

并将其替换为以下代码

HttpClient httpClient = MainActivity.createHttpClient();


public static HttpClient createHttpClient(){
    try {
        KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
        trustStore.load(null, null);

        SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
        sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

        HttpParams params = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(params, 15000);
        HttpConnectionParams.setSoTimeout(params, 5000);

        SchemeRegistry registry = new SchemeRegistry();
        registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
        registry.register(new Scheme("https", sf, 443));

        ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);

        return new DefaultHttpClient(ccm, params);
    } catch (Exception e) {
        return new DefaultHttpClient();
    }
}
 类似资料:
  • 问题内容: 在我的用于读取RSS链接的Android应用程序中,出现此错误: java.net.UnknownHostException:无法解析主机“ example.com”;没有与主机名关联的地址。 在模拟器中,我可以通过浏览器连接到Google。请帮助我解决此问题。 问题答案: 您可能没有权限。尝试将它添加到您的文件中: 注:以上不 必须 的前右侧的标签,但这是把它的好/正确的位置。 注意

  • 当我尝试在android应用程序上按主机名获取ip时,我遇到了一个类似的奇怪错误。 类似的问题在IOs上返回的结果是whitout problems,但我的应用程序android没有返回任何东西。 我创建这些函数来测试我的应用程序: 但是类似的代码,在IOs上,如果我搜索我自己托管的服务器,会返回一个有效的结果,但是在android上搜索相同的页面或服务器时,结果会给我一个“无法解析主机”的警告。

  • 我有一个Android应用程序,我通过Retrofit2/OkHttp向api发送超文本传输协议请求。两周内一切正常。2天前我的网站被暂停。今天重新开放。一些用户开始出现错误消息。用户说“无法登录应用程序!”。当我检查日志时,我看到了这样的东西; 一些用户仍然可以登录到该应用程序。我搞不懂。 我怎样才能马上解决这个问题?

  • 我正面临一个大问题,我试图使用GET方法连接到一个网址。它给我一个错误java.net.未知主机异常:无法解决主机“网址”:没有与主机名相关联的地址。 我一直在看一些帖子,所有人都说是关于权限的。我的权限是: 我可以通过在手机上使用chrome访问该网址,这意味着wifi正在工作。 我使用的是摩托罗拉G2,API 23。

  • 我正在开发一个用于测试asp的应用程序。android中的NetWebService。为此,我们使用了一个简单的Web服务来添加两个数字。其中数字作为参数传递。结果是进入对话。网络服务器在本地工作。当应用程序运行时,以下结果作为异常获取。我在清单中提供了互联网许可。 JAVA网UnknownHostException(无法解析主机)http://url.com/“:没有与主机名关联的地址) 我的代

  • 最近有人遇到过这样的错误吗?三个月来,应用程序一直正常运行,但今天okhttp已停止连接任何url。有什么问题吗?我没有更改任何代码,只是更新了依赖项的版本。 这是我的okhttp依赖项: 我还尝试在清单中使用这些设置: 但这没用。 我将不胜感激任何帮助!