休息api调用和POST请求(java)

时间:2015-02-13 20:14:32

标签: java api rest

我对REST api和POST请求很新。 我有一个REST api的url。我需要通过在JAVA中进行API调用来访问此API,这要归功于客户端ID和客户端密钥(我发现了一种散列客户端密钥的方法)。然而,因为我是新手,我不知道如何做那个api电话。我在互联网上整天做了我的研究,但我没有找到关于如何进行api通话的教程,网站或其他任何内容。所以,有没有人知道教程或如何做到这一点? (如果你还有关于POST请求的东西那就太棒了)

我会非常感激。

非常感谢您的关注。

Sassir

5 个答案:

答案 0 :(得分:1)

Restlet框架还允许您通过其类ClientResource来执行此类操作。在下面的代码中,您将在POST请求中构建并发送JSON内容:

ClientResource cr = new ClientResource("http://...");

SONObject jo = new JSONObject();
jo.add("entryOne", "...");
jo.add("entryTow", "...");

cr.post(new JsonRepresentation(jo), MediaType.APPLICATION_JSON);

Restlet允许发送任何类型的内容(JSON,XML,YAML,...),并且还可以使用其转换器功能为您管理bean /表示转换(基于bean创建表示形式 - 此答案给出您有更多详情:XML & JSON web api : automatic mapping from POJOs?)。

您还可以注意到,HTTP提供了一个标头Authorization,允许为请求提供身份验证提示。这里支持几种技术:basic,oauth,...这个链接可以帮助你达到这个级别:https://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/

使用身份验证(例如基本身份验证)可以这样做:

String username = (...)
String password = (...)
cr.setChallengeResponse(ChallengeScheme.HTTP_BASIC, username, password); 
(...)
cr.post(new JsonRepresentation(jo), MediaType.APPLICATION_JSON);

希望它可以帮到你, 亨利

答案 1 :(得分:0)

我相信你想从java应用程序进行休息调用。您可以使用任何http客户端实用程序来实现。例如:Apache Commons http client

答案 2 :(得分:0)

这是一个仅使用JDK类的基本示例代码段。这可能有助于您比使用客户端帮助程序更好地理解基于HTTP的RESTful服务。您调用这些方法的顺序至关重要。如果您遇到问题,请在问题中添加评论,我会帮助您解决问题。

URL target = new URL("http://www.google.com");
HttpURLConnectionconn = (HttpURLConnection) target.openConnection();
conn.setRequestMethod("GET");

// used for POST and PUT, usually
// conn.setDoOutput(true);
// OutputStream toWriteTo = conn.getOutputStream();

conn.connect();
int responseCode = conn.getResponseCode();

try 
{
    InputStream response = conn.getInputStream();
}
catch (IOException e)
{
    InputStream error = conn.getErrorStream();
}

答案 3 :(得分:0)

您还可以使用Spring中的RestTemplate:https://spring.io/blog/2009/03/27/rest-in-spring-3-resttemplate

快速简单的解决方案,无需任何样板代码。 简单的例子:

RestTemplate rest = new RestTemplate();

MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
map.add("firstParamater", "parameterValue");
map.add("secondParameter", "differentValue");

rest.postForObject("http://your-rest-api-url", map, String.class);

答案 4 :(得分:0)

如果您打算使用Spring MVC来构建REST Web服务,那么本文将是一篇很好的文章。

http://www.springbyexample.org/examples/contact-rest-services.html