[英]POST request to Spring REST web service fails with HTTP status 415
我已經設置了一個Spring RESTful Web服務,用於接收用戶的用戶名和密碼。 一直在關注Spring IO的教程
我的服務設置為接受用戶名和密碼,如下所示:
@Controller
@RequestMapping("/users")
public class UserCommandController {
private static Logger log = LoggerFactory.getLogger(UserCommandController.class);
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity createUser(@RequestBody UserDetail userDetail, UriComponentsBuilder builder) {
User newUser = new User();
newUser.setEmail(userDetail.getEmail());
newUser.setPassword(userDetail.getPassword());
newUser.setUserName(userDetail.getUsername());
try {
UserFactory.getInstance().saveNewUser(newUser);
} catch(UserException ue) {
log.error("Saving user failed. Exception: "+ue.getMessage());
}
return new ResponseEntity(HttpStatus.OK);
}
}
我正在通過Google chrome插件POSTMAN將POST參數發送給服務作為測試,但我收到“ HTTP:415。服務器拒絕了此請求,因為請求實體的格式不受請求方法的請求資源支持。 ”
有人知道我在做什么錯嗎?
設置標題:
Content-Type=application/json
這解決了我的問題!
HTTP 415響應代碼表示服務器期望發布的數據具有不同的內容類型。 看來您只是發布了一個以用戶名,密碼和電子郵件為參數的表單。 這將導致內容類型為application / x-www-form-urlencoded。
嘗試使用內容類型為application / xml或application / json的發布。 在您的帖子正文中,您需要將數據放入相應的格式。 例如,如果使用application.xml,則XML主體應類似於:
<userDetail>
<userName>xxx</userName>
<password>xxx</password>
<email>xxx</email>
</userDatail>
當然,確切的格式(即元素名稱)取決於XML綁定。 實際上,期望的格式是否為XML或JSON或其他格式也可能是服務器配置。
使用瀏覽器很難發布這種類型的請求。 您將需要其他一些HTTP客戶端。 像SOAP-UI這樣的工具可能是一個不錯的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.