【问题标题】:Unable to get POST data from Spring RestController无法从 Spring RestController 获取 POST 数据
【发布时间】:2018-01-05 04:41:53
【问题描述】:

我无法让 Spring 获取 POST 数据。控制器应该获取字符串然后回显。但是,我得到了

响应:回显:null

在 main() 方法中

我应该怎么做才能解决它?

休息控制器

@RestController
@RequestMapping("/")
public class HelloWorldController {

    @RequestMapping(method = RequestMethod.GET)
    public String get() {
        return "test get method";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String post(String string) {
        return "echo: " + string;
    }
}

测试 POST 功能

public static void main(String[] args) {
    String urlString = "http://localhost/Test/";
    try{
        Gson gson = new Gson();
        Testz test = new Testz();
        test.setZ("zzzzzzzzzzzzzzzzz");
        test.setCrap("rawrrr!!");
        String urlParameters = gson.toJson(test);
        byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
        URL url = new URL(urlString);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setInstanceFollowRedirects(false);
        conn.setRequestMethod("POST");
        conn.setUseCaches(false);
        try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
            wr.write(postData);
        } catch (Exception e) {
            e.printStackTrace();
        }

        InputStream inputStream = conn.getInputStream();
        byte[] available = new byte[inputStream.available()];
        inputStream.read(available);

        System.out.println("response: " + new String(available));
    }
    catch(Exception e){
        e.printStackTrace();
    }
}

class Testz {
    private String z = null;
            public void setZ(String z){this.z = z;}
            public String getZ(){return z;}
    private String crap = null;
            public void setCrap(String crap){this.crap = crap;}
            public String getCrap(){return crap;}
}

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

    尝试添加@RequestBody注解:

    public String post(@RequestBody String string) {
    

    它应该像一个魅力。

    【讨论】:

      猜你喜欢
      • 2015-10-22
      • 2022-01-08
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 2017-07-15
      • 1970-01-01
      相关资源
      最近更新 更多