我正在尝试创建一个java应用程序来使用IP地址从ARIN读取信息。我看到ARIN正在使用RESTful网络服务来获取IP信息,但我不确定我需要做什么才能开始。一些人在谈论RESTLET,另一些人在谈论JAX-RS,等等。你能帮我把我带到正确的方向吗?谢谢!
发布于 2013-01-17 17:25:12
Restlet还具有一个客户端API,用于与远程RESTful应用程序交互。有关更多详细信息,请参阅类Client,ClientResource。为此,您需要具有来自Restlet发行版的以下jar文件:
org.restlet:主要支持XML
如果我使用位于此地址的文档https://www.arin.net/resources/whoisrws/whois_api.html#whoisrws。下面是一个您可以使用的简单Restlet代码:
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN");
Representation repr = cr.get();
// Display the XML content
System.out.println(repr.getText());或
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN.txt");
Representation repr = cr.get();
// Display the text content
System.out.println(repr.getText());Restlet还提供了一些XML级别的支持。因此,您可以通过一种简单的方式访问XML中包含的提示,如下所述:
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN");
Representation repr = cr.get();
DomRepresentation dRepr = new DomRepresentation(repr);
Node firstNameNode = dRepr.getNode("//firstName");
Node lastNameNode = dRepr.getNode("//lastName");
System.out.println(firstNameNode.getTextContent()+" "+lastNameNode.getTextContent());请注意,您最终可以处理内容协商(conneg),因为您的REST服务似乎支持它:
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN");
Representation repr = cr.get(MediaType.APPLICATION_JSON);在这种情况下,表示对象包含JSON格式的数据。以与DomRepresentation相同的方式,有一个JsonRepresentation来检查这个表示内容。
希望能对你有所帮助。蒂埃里
发布于 2013-01-17 02:08:43
问题是你似乎没有很好地理解什么是REST (如果我错了,对不起!)。Restlet和JAX-RS都是与服务器端相关的。
您可能需要像jersey-client这样的东西。这是一个帮助与RESTful with服务交互的库。您还可以使用普通的Java库对the服务进行HTTP调用。REST与其实现协议紧密绑定在一起。这意味着如果webservice是用HTTP实现的(很可能是),那么您不需要任何花哨的东西来与它交互。就是HTTP。
我强烈建议您更多地了解REST和HTTP本身。
https://stackoverflow.com/questions/14364674
复制相似问题