0
我有一個REST端點,它當前返回JSON輸出。我想修改相同的端點來返回純文本輸出,主要區分生成application/json
和text/plain
Accept
標題。這裏是我當前的配置 -Spring 3:內容協商
servlet.xml中:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="defaultContentType" value="application/json" />
<property name="ignoreAcceptHeader" value="true" />
<property name="order" value="0" />
<property name="mediaTypes">
<map>
<entry key="text" value="text/plain" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<list>
<ref bean="jsonView"/>
</list>
</property>
</bean>
<bean id="jsonView"
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="contentType" value="application/json;charset=UTF-8"/>
<property name="disableCaching" value="false"/>
</bean>
REST端點:
@RequestMapping(value = "/emps", method = RequestMethod.GET, produces = {"application/json"})
@ResponseStatus(HttpStatus.OK)
public @ResponseBody List<Employee> getEmpsList() throws VMException {
final List<Employee> eList = getAllEmployees();
return eList;
}
我試着修改產品到{"application/json", "text/plain"}
。 T閱讀一些在線的東西,並且由於我要返回一個bean,我需要使用HttpMessageConverter
來返回text/plain
輸出。我能夠通過編寫兩種方法來獲得這項工作,一種返回application/json
輸出和其他返回text/plain
輸出。甚至有可能將其結合到單個方法實現中,或者重要的是,根據請求的輸出格式返回結果,即json
或text
。
在此先感謝您的幫助。
更新:附加postman客戶端插件的圖像。
圖片1: 圖片2:
當您進行更改時實際發生了什麼?沒有改變? 405或406? – Vidya
是的,我得到了406.謝謝@Vidya。 – devang
您可以在您的請求中顯示您的「Accept」標頭的樣子嗎? – Vidya