簡體   English   中英

到Spring REST Web服務的POST請求失敗,HTTP狀態為415

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM