如何将控制器设置为在 Grails 中以纯文本形式响应
how to set the controller to respond as plain text in Grails
我需要创建一个 API 用于监控,为此需要响应将是纯文本,而不是 json 或 xml
我做的是:
检查了我的应用程序 yaml,它包含文本:
types:
all: '*/*'
atom: application/atom+xml
css: text/css
csv: text/csv
excel: application/vnd.ms-excel
xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
form: application/x-www-form-urlencoded
html:
- text/html
- application/xhtml+xml
js: text/javascript
json:
- application/json
- text/json
multipartForm: multipart/form-data
pdf: application/pdf
rss: application/rss+xml
text: text/plain
hal:
- application/hal+json
- application/hal+xml
xml:
- text/xml
- application/xml
添加到我的控制器:static responseFormats = ['all']
,也尝试过 static responseFormats = ['text']
在我的方法中做了:
respond mystring, formats:['text']
但 grails 仍然试图将其转换为 JSON 并抛出 http 406 错误
如何配置我的控制器以使用纯文本
谢谢
我知道怎么做了
我在解决问题的方法中使用渲染而不是响应,但仍然不确定为什么不能使用响应
class MonitorApi4Controller {
static responseFormats = ['text']
static allowedMethods = [ monitorScrape: "GET"]
MonitorService getMonitorService(){
return ApplicationContextHolder.getBean('monitorService')
}
def monitorScrape(){
def message = getMonitorService().serviceMethod()
render message
}
}
我需要创建一个 API 用于监控,为此需要响应将是纯文本,而不是 json 或 xml
我做的是:
检查了我的应用程序 yaml,它包含文本:
types:
all: '*/*'
atom: application/atom+xml
css: text/css
csv: text/csv
excel: application/vnd.ms-excel
xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
form: application/x-www-form-urlencoded
html:
- text/html
- application/xhtml+xml
js: text/javascript
json:
- application/json
- text/json
multipartForm: multipart/form-data
pdf: application/pdf
rss: application/rss+xml
text: text/plain
hal:
- application/hal+json
- application/hal+xml
xml:
- text/xml
- application/xml
添加到我的控制器:static responseFormats = ['all']
,也尝试过 static responseFormats = ['text']
在我的方法中做了:
respond mystring, formats:['text']
但 grails 仍然试图将其转换为 JSON 并抛出 http 406 错误
如何配置我的控制器以使用纯文本
谢谢
我知道怎么做了 我在解决问题的方法中使用渲染而不是响应,但仍然不确定为什么不能使用响应
class MonitorApi4Controller {
static responseFormats = ['text']
static allowedMethods = [ monitorScrape: "GET"]
MonitorService getMonitorService(){
return ApplicationContextHolder.getBean('monitorService')
}
def monitorScrape(){
def message = getMonitorService().serviceMethod()
render message
}
}