有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java访问yahoo web服务引发未知的异常

我正在尝试解析雅虎!带有XPath的Web服务XML结果

我使用的代码是

    String request = "http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=umbrella&results=10";
    HttpClient client = new HttpClient();
    GetMethod method = new GetMethod(request);        
    // Send GET request
    int statusCode = client.executeMethod(method);        
    if (statusCode != HttpStatus.SC_OK) {
        System.err.println("Method failed: " + method.getStatusLine());
    }
    InputStream rstream = null;        
    // Get the response body
    rstream = method.getResponseBodyAsStream();     
    // Process response
    Document response = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(rstream);        
    XPathFactory factory = XPathFactory.newInstance();
    XPath xPath=factory.newXPath();        
    //Get all search Result nodes
    NodeList nodes = (NodeList)xPath.evaluate("/ResultSet/Result", response, XPathConstants.NODESET);
    int nodeCount = nodes.getLength();

我有这样的例外

Exception in thread "main" java.net.UnknownHostException: api.search.yahoo.com
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at                            org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultPro   tocolSocketFactory.java:80)
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at org.tcs.com.newsfeed.YahooWebServiceParseResults.main(YahooWebServiceParseResults.java:38)

共 (1) 个答案

  1. # 1 楼答案

    此异常表示java客户端无法解析DNS名称api。搜索雅虎。com

    来自javadoc:“抛出以指示无法确定主机的IP地址。”

    无论出于何种原因,您的程序都无法解析DNS名称。当您尝试从命令行ping此主机名时会发生什么情况