首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为Java创建REST客户端?

如何为Java创建REST客户端?
EN

Stack Overflow用户
提问于 2008-10-21 10:50:59
回答 13查看 387.2K关注 0票数 257

有了JSR 311及其实现,我们就有了通过REST公开Java对象的强大标准。但是,在客户端,似乎缺少可与Apache Axis for SOAP相媲美的东西-隐藏web服务并透明地将数据编组回Java对象的东西。

如何创建Java RESTful客户端?使用HTTPConnection和手动解析结果?或专门的客户端,例如Jersey或Apache CXR?

EN

回答 13

Stack Overflow用户

发布于 2008-10-21 12:58:39

正如我在this thread中提到的,我倾向于使用Jersey,它实现了JAX-RS,并附带了一个很好的REST客户端。如果您使用JAX-RS实现您的RESTful资源,那么Jersey客户端可以重用实体提供者,比如用于JAXB/XML/JSON/Atom等等-这样您就可以在服务器端重用与在客户端单元测试中使用的相同的对象。

例如,来自Apache Camel projecthere is a unit test case,它从RESTful资源查找XML有效负载(使用JAXB object Endpoint)。资源(Uri)方法是在this base class中定义的,它只使用Jersey client API。

例如:

代码语言:javascript
复制
    clientConfig = new DefaultClientConfig();
    client = Client.create(clientConfig);

    resource = client.resource("http://localhost:8080");
    // lets get the XML as a String
    String text = resource("foo").accept("application/xml").get(String.class);        

顺便说一句,我希望JAX-RS的未来版本能像Jersey那样添加一个很好的客户端API

票数 73
EN

Stack Overflow用户

发布于 2011-02-25 04:47:26

如果您只希望调用REST服务并解析响应,那么可以尝试Rest Assured

代码语言:javascript
复制
// Make a GET request to "/lotto"
String json = get("/lotto").asString()
// Parse the JSON response
List<String> winnderIds = with(json).get("lotto.winners.winnerId");

// Make a POST request to "/shopping"
String xml = post("/shopping").andReturn().body().asString()
// Parse the XML
Node category = with(xml).get("shopping.category[0]");
票数 14
EN

Stack Overflow用户

发布于 2008-10-21 18:35:05

您还可以查看Restlet,它具有完整的客户端功能,比HttpURLConnection或Apache HTTP Client (我们可以将其用作连接器)等低级库更面向REST。

致以最好的问候,杰罗姆·卢维尔

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

https://stackoverflow.com/questions/221442

复制
相关文章

相似问题

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