關于Unsupported Media Type的解決方案
今天碰到一個問題,就是自身的一個接口被第三方的業(yè)務回調的時候出現(xiàn)了一個415的錯誤,也就是Unsupported Media Type。之后查了些資料,總結一下。
415是什么錯誤?
對于當前請求的方法和所請求的資源,請求中提交的實體并不是服務器中所支持的格式,因此請求被拒絕。
也就是說第三方發(fā)給己方服務器參數(shù)格式和服務器所要求的的參數(shù)格式不一樣
比如第三方傳的是’application/x-www-form-urlencoded;charset=UTF-8’(前端表單默認的格式,會將鍵值對的參數(shù)用&連接起來
如果有空格,將空格轉換為+加號;有特殊符號,將特殊符號轉換為ASCII HEX值),而服務器需要的是json格式,這樣就會出現(xiàn)415錯誤
兩種解決辦法
主要有兩種分別對應了服務端和客戶端
- 服務端:調整接口接收參數(shù)的方式。比如要是接收的是json字符串格式的參數(shù),就使用@RequestBody注解整體接收;接收用&連接起來的參數(shù)則用@RequestParam注解一一接收。
- 客戶端:調整上傳參數(shù)的格式,按照接口需求的參數(shù)進行傳遞。
順便記錄一下常見的媒體格式類型
常見的媒體格式類型
- text/html :HTML格式
- text/xml :XML格式
- text/plain :純文本格式
- image/gif :gif圖片格式
- image/jpeg :jpg圖片格式
- image/png :png圖片格式
以application開頭的媒體格式類型
- application/x-www-form-urlencoded :form表單中默認的格式,form表單數(shù)據(jù)被編碼為key/value格式發(fā)送到服務器。
- application/json :JSON數(shù)據(jù)格式
- application/xml :XML數(shù)據(jù)格式
- application/xhtml+xml :XHTML格式
- application/atom+xml :Atom XML聚合格式
- application/pdf :pdf格式
- application/msword :Word文檔格式
- application/octet-stream :二進制流數(shù)據(jù)(如常見的文件下載)
當然還有一個form表單中使用到的文件上傳格式:multipart/form-data就不寫到上述兩類中去了。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java正則表達式實現(xiàn)在文本中匹配查找換行符的方法【經(jīng)典實例】
這篇文章主要介紹了Java正則表達式實現(xiàn)在文本中匹配查找換行符的方法,結合具體實例分析了java正則匹配查找換行符的實現(xiàn)技巧與匹配模式相關操作注意事項,需要的朋友可以參考下2017-04-04Spring?Data?JPA系列JpaSpecificationExecutor用法詳解
這篇文章主要為大家介紹了Spring?Data?JPA系列JpaSpecificationExecutor用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09java面向對象:API(接口)與集合(ArrayList)
這篇文章主要介紹了Java語言面向對象的API與集合,還是十分不錯的,這里給大家分享下,需要的朋友可以參考,希望能夠給你帶來幫助2021-08-08java中為何重寫equals時必須重寫hashCode方法詳解
這篇文章主要給大家介紹了關于java中為什么重寫equals時必須重寫hashCode方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-11-11