0

我正在 grails 中编写代码,该代码正在使用 httpbuilder 进行后期调用。如果我对 body 的值进行硬编码,一切正常,但是当我使用变量传递相同的值时,它会一直给我 -

Unprocessable Entity. Stacktrace follows:
Message: Unprocessable Entity
   Line | Method
->> 636 | defaultFailureHandler in groovyx.net.http.HTTPBuilder
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   492 | doRequest             in     ''
|   427 | doRequest . . . . . . in     ''
|   376 | request               in     ''

代码如下 -

    def input = "s3://in_folder/inputFile.mp3"
    def outFile = "outFile.m3u8"
    def http = new HTTPBuilder("https://app.gridserver.com")
    http.request( groovyx.net.http.Method.POST, groovyx.net.http.ContentType.JSON ) { req ->
        uri.path = 'api/v2'
        headers.Accept = 'application/json'
        headers.'Key' = "ssdflkjdf8338fdjsd"
        body = ["input": input,  
            "output":[  "filename": outFile,
                        "format": "mp3",
                ] ]

        response.success = { resp, reader ->
            println "Got response: ${resp}"
        }
    }
}

如果我在这里用实际值替换变量“输入和输出文件”,那么它工作正常。

4

1 回答 1

0

好的,我似乎终于解决了。我需要在表达式中执行 .toString() ,以便它像文字一样接受它并且不将其转换为 json。所以最后我把它写成 "s3://audio_in/${fileName}.mp3".toString() 并且它工作正常。

于 2013-06-14T18:57:46.597 回答