【发布时间】:2016-01-11 17:46:34
【问题描述】:
我正在使用 Groovy 的 RESTClient/HTTPBuilder 库向 Web 服务发送 GET 和 POST 请求。一个资源需要内容类型为application/pdf 的PDF。响应将是一个 XML。
请求 --> POST 申请/pdf
响应
我尝试了以下方法:
def client = new RESTClient(url)
client.post(
uri: url,
body: new File('C:/temp/test.pdf').bytes,
requestContentType: 'application/pdf'
)
def client = new RESTClient(url)
client.setContentType('application/pdf')
client.post(
uri: url,
body: new File('C:/temp/test.pdf').bytes,
)
两种变体都产生:
未找到请求内容类型 application/pdf 的编码器
据我了解,该库默认不支持application/pdf。
我怎样才能实现上述?
@opal 回答后于 2015 年 10 月 15 日更新
以下代码 sn -p 至少将 PDF 放入请求正文中。但是我在 POST 请求中看不到 Content-type: application/pdf。服务器也拒绝使用“无效的 mime 类型”的请求。
client.encoder.putAt('application/pdf', new MethodClosure(this, 'encodePDF'))
response = client.post(
uri: url,
body: new File('C:/temp/test.pdf'),
requestContentType: 'application/pdf'
)
HttpEntity encodePDF(File pdf) {
new FileEntity(pdf)
}
【问题讨论】:
标签: rest groovy content-type httpbuilder