【问题标题】:httpbuilder-ng no signature of method multipart() when attempting a posthttpbuilder-ng 尝试发布时没有方法 multipart() 的签名
【发布时间】:2017-08-17 21:04:40
【问题描述】:

我几乎完全按照 HttpBuilder-NG 的示例中列出的方式实现了这段代码,但它对我不起作用。由于某种原因,它不将多部分识别为一种方法。来自库创建者https://http-builder-ng.github.io/http-builder-ng/asciidoc/html5/#_multipart

的示例
def uploadFileNG(String targetTestId, String filePath) {
    File someFile = new File(filePath)
    OkHttpBuilder.configure {
        request.uri = blazeUrl
    }.post {
        request.uri.path = "/api/latest/tests/${targetTestId}/files"
        request.contentType = "multipart/form-data"
        request.body = multipart {
            field 'name', 'This is my file'
            part 'file', someFile.getName(), 'text/plain', someFile
        }
        request.encoder 'multipart/form-data', OkHttpEncoders.&multipart
    }
}

【问题讨论】:

  • 完整的错误信息?
  • groovy.lang.MissingMethodException:没有方法签名:com.foulk.utils.blazeapi.BlazeApiHelper.multipart() 适用于参数类型:(com.foulk.utils.blazeapi.BlazeApiHelper$_uploadFileNG_closure9 $_closure12) 值:[com.foulk.utils.blazeapi.BlazeApiHelper$_uploadFileNG_closure9$_closure12@704deff2]

标签: post groovy multipart httpbuilder-ng


【解决方案1】:

multipart 方法(在 request.body 配置中)需要静态导入(我将更新文档以更明确地说明这一点)。

对于您的示例,这将是 import static groovyx.net.http.MultipartContent.multipart

【讨论】:

  • 我以为我以前尝试过,但显然我没有。 multipart的静态导入效果很好,谢谢指导。
  • 我也只是推送了文档更新,这样其他人就不会落入同样的陷阱。 :-)
猜你喜欢
  • 1970-01-01
  • 2020-08-31
  • 2015-10-31
  • 2020-08-20
  • 1970-01-01
  • 2013-05-10
  • 2011-05-07
  • 1970-01-01
  • 2016-04-15
相关资源
最近更新 更多