2016-01-06 27 views
0

我正在尝试编写spring REST代码来获取由android用户发送的参数。例如android用户填写表单并点击发送按钮。现在我想要在REST API中接收值或参数。我搜索谷歌,但无法弄清楚如何做到这一点。下面是我试过的代码,但没有奏效GET请求从春天的REST API接收来自android的参数?

EmailController.java

package com.intern.training 


import java.awt.PageAttributes.MediaType; 
import java.util.Map; 

import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 
import org.springframework.web.context.request.WebRequest; 

@RestController 
@RequestMapping("/email") 
public class EmailController 
{ 

    @RequestMapping(method= RequestMethod.GET) 
    public void getAll(WebRequest webRequest) 
    { 
     Map<String,String[]>params=webRequest.getParameterMap(); 
     System.out.println(params); 


    } 


} 

回答

1

我强烈建议你不要用GET发送请求的参数。优先请求POST。 (见Cross-site request forgery

然后,创建一个类,代表您要接收的参数:

public class RequestParams { 

    private String name; 
    private String surname; 

    //Getters, Setters... 

} 

然后想到这个对象作为方法的设置了一个param:

@RequestMapping(method= RequestMethod.POST) 
/** 
    Pay attention to the above @RequestBody annotation 
    or you will get null instead of the parameters 
**/ 
public void getAll(@RequestBody RequestParams request) 
{ 
    request.getName(); 
    request.getSurname(); 
    //... 
    System.out.println(request.getName() + " " + request.getSurname()); 
} 
+0

但如何将接收来自android – programmingtech

+0

的参数假设名称和姓氏是由android形式发送的参数,那么如何在春天接收它 – programmingtech

+0

@programmingtech Android可以发送POST请求。如果您真的想要,您可以接受请求参数(请参阅@ RequestParam绑定),但我强烈建议您避免将其用于可能具有破坏性的请求。 –