亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

忽略“接受”標題時返回“文本/純文本”

忽略“接受”標題時返回“文本/純文本”

慕沐林林 2021-09-03 10:58:57
我有這段代碼:@RequestMapping(value = "/test", produces = "text/plain")@ResponseBodypublic Object test() {    return "true";}我想要的是在這種情況下以“文本/純文本”類型返回“真”,即使我的接受標頭顯示“應用程序/json”或其他任何內容。現在,當我這樣做時,我得到了 406。有沒有簡單的方法來做這樣的事情?我的意思是真的很簡單?我寧愿不更改我的配置文件,而這些文件將不僅僅影響這一種方法。編輯: 我找到了部分解決方案@RequestMapping(value = "/test")@ResponseBodypublic Object test(){    HttpHeaders responseHeaders = new HttpHeaders();    responseHeaders.setContentType(MediaType.TEXT_PLAIN);    return new ResponseEntity<>("true", responseHeaders, HttpStatus.OK);}但是有沒有人知道更簡單、更短的解決方案?
查看完整描述

2 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

在調用者中聲明標頭

accept:text/plain

這樣您就可以將來自服務器的響應聲明為文本/純文本

這里的來電者可以是(郵遞員、JS 等)


查看完整回答
反對 回復 2021-09-03
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

對于更靈活的設置,您可以刪除produces = "text/plain"并添加headers ="Accept=application/json". 見Baeldung文章:


映射由控制器方法生成的媒體類型值得特別注意——我們可以通過上面介紹的@RequestMapping headers 屬性根據它的 Accept 標頭映射請求:


@RequestMapping(

  value = "/ex/foos", 

  method = GET, 

  headers = "Accept=application/json")

@ResponseBody

public String getFoosAsJsonFromBrowser() {

    return "Get some Foos with Header Old";

}

這種定義 Accept 頭的方式的匹配是靈活的——它使用 contains 而不是 equals,所以像下面這樣的請求仍然可以正確映射:


curl -H "Accept:application/json,text/html"  http://localhost:8080/spring-rest/ex/foos



查看完整回答
反對 回復 2021-09-03
  • 2 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號