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