如何发送在URL请求的阵列(how to send an array in url request)

2019-06-17 16:13发布

我的要求如下:

我想给演员的名字,开始日期,结束日期,让他在那个时期担任了所有的电影。

出于这个原因,我的服务请求是这样的。

  http://localhost:8080/MovieDB/GetJson?name=Actor&startDate=20120101&endDate=20120505

现在,我想改善它。 我想给一个开始日期,结束日期和不止一个演员的名字,并希望看到在这一时期所有这些演员的电影。

我不知道我的网址应该是什么样子,以支持这样的事情。

我使用的春天写一个基于Java的Web服务。

下面的代码是支持一个演员

   @RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
    public void getJson(@RequestParam("name") String ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }

一种解决方案我想到使用%符号单独演员的名字。 例如:

 http://localhost:8080/MovieDB/GetJson?name=Actor1%Actor2%Actor3&startDate=20120101&endDate=20120505

现在,在控制器我将解析名称串%,并取回所有演员的名字。

这是做一个很好的办法还是有一个标准的方法?

谢谢

Answer 1:

用逗号分隔:

http://localhost:8080/MovieDB/GetJson?name=Actor1,Actor2,Actor3&startDate=20120101&endDate=20120505

要么:

http://localhost:8080/MovieDB/GetJson?name=Actor1&name=Actor2&name=Actor3&startDate=20120101&endDate=20120505

要么:

http://localhost:8080/MovieDB/GetJson?name[0]=Actor1&name[1]=Actor2&name[2]=Actor3&startDate=20120101&endDate=20120505

无论哪种方式,你的方法签名必须是:

@RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
public void getJson(@RequestParam("name") String[] ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }


文章来源: how to send an array in url request