我正在“传递”从外部服务返回的json提要(在某些情况下相当大),以隐藏对客户端的访问api密钥(访问密钥是该服务的唯一可用身份验证系统)。
我正在使用Gaelyk,我写了这个groovlet:
try {
feed(params.topic)
} catch(Exception e) {
redirect "/failure"
}
def feed(topic) {
URL url = new URL("https://somewhere.com/$topic/<apikey>/feed")
def restResponse = url.get()
if (restResponse.responseCode == 200) {
response.contentType = 'application/json'
out << restResponse.text
}
}唯一的问题是"restResponse“非常大,而由groovlet返回的值被截断。所以我会得到一个像这样的json:
[{"item":....},{"item":....},{"item":....},{"ite如何在不截断的情况下返回完整的json?
发布于 2014-07-04 06:30:40
我找到了解决方案,问题在开始时( URL内容必须作为流读取)。因此,被截断的内容不是输出,而是输入:
def feed(topic) {
URL url = "https://somewhere.com/$topic/<apikey>/feed".toURL()
def restResponse = url.get()
if (restResponse.responseCode == 200) {
response.contentType = 'application/json'
StringBuffer sb = new StringBuffer()
url.eachLine {
sb << it
}
out << sb.toString()
}
}https://stackoverflow.com/questions/24540015
复制相似问题