- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
尝试模拟需要将一些 INPUT/TEXT 字段与文件中的数据结合起来的 HTTP POST。看起来我可以拥有其中之一,但不能同时拥有两者?
在下面的代码片段中,paramsToPost = [name: 'John', age:22]
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0')
Boolean doHttpPost(String url, Map paramsToPost, String fileContent) {
HTTPBuilder http = new HTTPBuilder(url)
def resp = http.request(Method.POST ) { req ->
MultipartEntity mpe = new MultipartEntity()
mpe.addPart "foo", new StringBody(fileContent)
req.entity = mpe
// body = paramsToPost // no such property
}
println "response: ${resp}"
return true
}
有人有工作样本吗?
最佳答案
刚刚让我的代码与旧的 commons-httpclient-3.1.jar 一起工作
(new HTTPBuilder(url)).request(Method.POST) { request ->
MultipartEntity mpe = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
mpe.addPart('fileInput', new StringBody(params.fileInput))
if (params.fileInput=='file')
mpe.addPart('file1', new InputStreamBody(uploadedFile.inputStream, uploadedFile.contentType, uploadedFile.originalFilename))
else if (params.fileInput=='text')
mpe.addPart('fileText', new StringBody(params.fileText))
mpe.addPart('tags1', new StringBody(params.tags1))
request.entity = mpe
request.getParams().setParameter("http.connection.timeout", HTTP_TIMEOUT)
request.getParams().setParameter("http.socket.timeout", HTTP_TIMEOUT)
response.success = { resp, reader ->
render(text : "Successfully uploaded file\n\n${reader.text}")
}
response.failure = { resp ->
render (status: 500, text: "HTTP Failure Accessing Upload Service ${resp.statusLine}" )
}
希望对你有帮助
关于Groovy 中的 HTTPBuilder 和 MultipartEntity/multipart 表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452678/
可能是发布这个的错误地方,但我一直在摆弄异步http构建器,试图让基本的密码查询工作。它可以与 Http Builders 一起使用,但无法使其与异步版本一起使用。 @Grab(group='o
我正在尝试安装 HTTPBuilder像这样: @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder
我试图了解 HTTP Builder 的简化 GET。我通过类似于 REST GET 请求的简单 GET 请求成功了。 def client = new HTTPBuilder('http://pok
我正在尝试使用 Groovy HTTPBuilder 编写一个集成测试,该测试将验证正文中是否返回正确的错误消息以及 HTTP 409 状态消息。但是,我无法弄清楚如何在失败的情况下实际访问 HTTP
嗨,我想知道如何发布一个urlencoded字符串并使用HTTPBuilder读取xml响应?我想在Grails应用程序中使用它。 REST插件是不可选项。我尝试了在http://groovy.cod
我正在使用以下代码对外部系统执行 HTTP POST。问题是外部系统在使用下面的代码时总是得到一个“空”内容类型。有没有办法在使用 HTTPBuilder 时设置内容类型。 我尝试了执行相同请求的其他
以下代码不会对用户进行身份验证(没有发生身份验证失败,但由于缺乏权限导致调用失败): def remote = new HTTPBuilder("http://example.com") remote
我的httpbuilder帖子和json的响应处理遇到一些问题 在我的服务范围内,我有: def jsonDataToPost = '{"accountNumber" : ' + accNo + ',
我想与具有基于URL的API的Web服务进行通信。例如,我有以下URL: http://api.bla.com/aaa/bbb.ashx?Action=GetSecurityToken&vendorI
我试图使用httpBuilder在groovy中构建一个api使用者。我的后端api返回内容类型为application / json的json输出。但是,当我将httpbuilder对象中的内容类型
是 HTTPBuilder在 Grails 中线程安全吗? 如果 HTTPBuilder 连接到 Grails 服务类,使用它是否安全?还是应该在每次调用时实例化? 关于 Grails 中的 HTTP
为什么某些导入适用于项目中的常规 groovy 文件 compile group: 'org.codehaus.groovy.modules.http-builder', name: 'http-bu
我一直在使用HTTPBuilder作为获取站点 HTML 内容的一种方式。例如,这就是我使用它的方式: def http = new HTTPBuilder(url) def root = http.
def login(String email, String password, String apiKey) throws HttpResponseException { def postB
我需要通过代理才能到达我的目标服务器。看来我可以用这样的代码来做到这一点: def http = new HTTPBuilder( 'http://www.somesite.com') http.se
这个问题与 this question 密切相关.不同之处在于我想遵循模拟客户端的推荐方法。因此,我定义了以下 HTTPBuilder: protected readUrl() { def h
我正在尝试发出一个简单的 HTTP POST 请求,但我不知道为什么以下失败。我尝试按照示例 here ,而且我不明白我哪里出错了。 异常 java.lang.NullPointerException
我有一些 HTTPBuilder 代码的行为会有所不同,具体取决于我是否重用相同的 HTTPBuilder 对象来对同一个 REST 服务执行两个不同的请求: def http = new HTTPB
我需要下载并保存文件。我正在尝试使用 HTTPBuilder,因为它具有简单的 API 并且支持 cookie。我写了以下代码: //create new httpBuilder and set co
我有一个 NiFi StandardSSLContextService,它给了我一个自定义的 SSLContext。现在我想知道如何在 Groovy(通过 ExecuteScriptProcessor
我是一名优秀的程序员,十分优秀!