[英]Unable to get POST data from Spring RestController
我無法讓Spring獲取POST
數據。 Controller應該獲取字符串然后回顯。 但是,我得到了
響應:echo:null
在main()方法
我該怎么做才能解決這個問題?
RestController
@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;}
}
嘗試添加@RequestBody
注釋:
public String post(@RequestBody String string) {
它應該像魅力一樣工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.