【问题标题】:UnKnowHost Exception while consuming a web service使用 Web 服务时出现 UnKnowHost 异常
【发布时间】:2018-04-16 08:47:44
【问题描述】:

我正在尝试使用 Web 服务并在该 API 上执行 POST。我试过邮递员,一切都很好。但是,一旦我编写了一个 Java 客户端来使用该 Web 服务,我就会收到以下错误。

java.net.UnknownHostException: www.api.com
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
    at java.net.InetAddress.getAllByName(InetAddress.java:1192)
    at java.net.InetAddress.getAllByName(InetAddress.java:1126)
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:44)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:259)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:159)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)

Java 客户端代码:

public static void sendPost() throws ClientProtocolException, IOException {

    try {
        HttpClient client = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(_api.trim());
        List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
        postParameters.add(new BasicNameValuePair("parm_1", "dgs"));
        postParameters.add(new BasicNameValuePair("parm_2", "ab"));
        postParameters.add(new BasicNameValuePair("parm_3", "4hdiin"));
        httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");

        httpPost.setEntity(new UrlEncodedFormEntity(postParameters));

        HttpResponse response = client.execute(httpPost);
    } catch (Exception e) {
        e.printStackTrace();
    }

【问题讨论】:

    标签: java web-services exception post rest-client


    【解决方案1】:

    来自javadocs

    抛出UnknownHostException表示无法确定主机的IP地址。

    您是否尝试在网址 www.api.com 之前添加 http 或 https?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2018-02-02
      • 1970-01-01
      相关资源
      最近更新 更多