用于调用REST服务的JavaAPI
有谁能推荐一个更好的开源JavaAPI来调用REST服务吗?还想知道restletapi是否支持NTLM身份验证用于调用REST服务的JavaAPI,java,rest,Java,Rest,有谁能推荐一个更好的开源JavaAPI来调用REST服务吗?还想知道restletapi是否支持NTLM身份验证 谢谢这是REST—关键是您不需要API本身,只需要HttpURLConnection。您应该能够单独使用基本的JavaSDK与任何真正的RESTful服务交互。您可以使用ApacheCommonsHttpClient获得更高的性能,但这不是必须的 我使用resteasy作为rest框架,它工作得很好,很简单(重写和测试都可以,与easymock相同)。 作为示例代码: @Path("
谢谢这是REST—关键是您不需要API本身,只需要HttpURLConnection。您应该能够单独使用基本的JavaSDK与任何真正的RESTful服务交互。您可以使用ApacheCommonsHttpClient获得更高的性能,但这不是必须的 我使用resteasy作为rest框架,它工作得很好,很简单(重写和测试都可以,与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是类的“根路径”(实际的“根”将在components.xml上配置)
- @得到的是休息
- ProduceMime或consumerMIME是您应该使用或生成的mime
- @QueryParam是url的参数,@PathParam是您应该获得的参数
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
如果您只希望调用REST服务并获得响应,可以尝试:
//向“/lotto”发出获取请求
字符串json=get(“/lotto”).asString()
//解析JSON响应
列出winnderIds=with(json.get)(“lotto.winners.winnerId”);
//向“/购物”发出POST请求
字符串xml=post(“/shopping”).andReturn().body().asString()
//解析XML
节点category=with(xml.get)(“shopping.category[0]”);
复制它不是必要的,但IDE也不是,关键是有一些库来处理硬部分(HTTPS、表示处理等),因此您可以专注于提供功能开发占用空间相对较小的应用程序(包括图形资产在内的2mb总包),我肯定在努力避免添加额外的库/许可,所以这对我很有帮助!我同意。另外,正在开发的新版本Restlet即将发布2.0,也支持“调用”资源的新方法—客户端资源。换句话说,您可以用远程资源的URL实例化一个资源对象,然后获取它的表示形式,发送一个新的表示形式,等等。我还没有使用它,但我对它很感兴趣。
// 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]");