用于调用REST服务的Java API

时间:2009-08-17 18:46:24

标签: java rest

请问有人建议使用更好的开源Java API来调用REST服务吗?还想知道Restlet API是否支持NTLM身份验证。

由于

4 个答案:

答案 0 :(得分:7)

它是REST - 重点是你本身不需要API,只需要HttpURLConnection。您应该能够仅使用基本Java SDK与任何真正的RESTful服务进行交互。您可以使用Apache Commons HTTPClient获得更高级的功能 - 但这不是必需的。

答案 1 :(得分:4)

结帐Restlet。它有一个很好的客户端API。

使用示例:

Request request = new Request(Method.GET, "http://my/rest/api");

Client client = new Client(Protocol.HTTP);

Response response = client.handle(request);

//get response representation and process

答案 2 :(得分:1)

如果您只想调用REST服务并获得响应,可以试用REST Assured

// 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]");

答案 3 :(得分:0)

我正在使用resteasy作为其余的框架,它工作得非常简单(重写和测试,与easymock相同)。 作为示例代码:

@Path("/webservice")

public class Web
{

    @GET
    @Path("{web}")
    @ProduceMime("application/xml")
    public String test(@QueryParam("param") String param, @PathParam("web") String web) 
    {
    //  code here
    }
}
  • @Path是你的“根路径”(你的真正的“root”将在components.xml上配置)
  • @GET来自Rest
  • ProduceMime或ConsumeMime是您应该使用或制作的mime
  • @QueryParam是url的参数,@ PathParam是你应该得到的参数

所以这个get会收到来自/ webservice / web?param = lalala的调用,并以application / xml格式返回一个字符串