如何使用java / Spring / rest将post json Object Data传递给api

时间:2017-09-28 03:26:03

标签: java json spring rest

问题陈述

我是Spring / Rest Applications的新手,我在Object中有数据。

现在,我需要将此数据传递给API。

以下是针对单个记录附加的示例卷曲 -

curl --request POST \
  --url http://eventapi-dev.wynk.in/tv/events/v1/event \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --header 'postman-token: 67f73c14-791f-62fe-2b5a-179ba04f67ba' \
  --data '{"name":"hotel california", "createdAt":1505727060471, "steamUrl":"https://www.youtube.com/watch?v=lHje9w7Ev4U"}'

我在终端点击卷曲网址后得到的回复是确定

  

我可以指导我如何用Java编写代码。

3 个答案:

答案 0 :(得分:1)

您可以使用okhttp(https://github.com/square/okhttp)来调用此api。 例如:

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"name\":\"hotel california\", \n\t\"createdAt\":1505727060471, \n\t\"steamUrl\":\"https://www.youtube.com/watch?v=lHje9w7Ev4U\"\n}");
Request request = new Request.Builder()
  .url("http://eventapi-dev.wynk.in/tv/events/v1/event")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("cache-control", "no-cache")
  .addHeader("postman-token", "08af0720-79cc-ff3d-2a7d-f208202e5ec0")
  .build();

Response response = client.newCall(request).execute();

答案 1 :(得分:1)

你必须使用HttpURLConnection使用URL& String

您注意到JONS数据作为class Program { private static IDictionary<string, Action> MethodMappings = new Dictionary<string, Action> { {"Method1", Method1}, {"Method2", Method2}, ... } public static void Main(string[] args) { var methodCall = Console.ReadLine(); if (!MethodMappings.ContainsKey(methodCall)) { //unrecognized command } MethodMappings[methodCall].Invoke(); } private static void Method1() { ... } private static void Method2() { ... } }

传递的帖子方案

然后,您也可以关注here使用该API了解更多答案。

您还可以使用this question并浏览其网站上的示例。

Apache HttpClient示例也是Apache HttpClient

我不确定是否应该复制 - 将这些网站的相关代码示例粘贴到此答案(为了完整性),但想法很简单,您必须找到一个可以帮助您构建和执行REST请求。

另一个API列在 - TrầnĐứcHùng的回答中,因此我们在市场上有许多其他Java API。

答案 2 :(得分:-2)

网址将是您的终点。这意味着您需要编写一个可以响应您的请求的控制器,在您的请求中,您可以看到一些标题。这些标题用于登录并告诉spring您正在发送json文本。此外,如果您检查您的请求,它是&#34; POST&#34;所以你还需要通知你的控制器方法。最好用模型捕获所有数据。

所以你的任务应该是这样的。

  1. 创建可以响应您的网址的控制器。
  2. 通知您的控制器方法数据采用Json格式。
  3. 告知您的控制器方法需要等待&#34; POST&#34;请求。
  4. 将数据解析为模型。
  5. 让我们尝试使用代码。

    @RequestMapping(value = events.EVENT, method = RequestMethod.POST, consumes = {
            MediaType.APPLICATION_JSON_VALUE }, produces = { MediaType.APPLICATION_JSON_VALUE })
    public Event eventAction(@RequestBody Event event){
    

    }

    在您的情况下,您需要定义什么是事件。上课应该是这样的。

    public class Quota implements Serializable{
     private String name;
     private Date createAt;
     private String url;
    
    // create getter setter
    }
    

    现在你可以回复这个请求了。在控制器方法内部,您可以执行业务逻辑。