我正在开发一个Web应用程序的模块。要触发这个模块,我需要向服务器提交一些数据。对于简单的表单,ChromeDeveloper Tools中的Copy as cURL
工作正常(使用msys[git]中的curl),但是对于具有Multipart/form-data
的发布请求,复制的字符串在windows shell中既不可用(cmd)或bash(msys表单);复制的文本类似于:
curl "http://myserver.local" -H "Origin: http://wiki.selfhtml.org" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryntXdlWbYXAVwCIMU" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "Cache-Control: max-age=0" -H "Referer: http://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:HTML_form-Element1.html" -H "Connection: keep-alive" --data-binary "------WebKitFormBoundaryntXdlWbYXAVwCIMU"^ "Content-Disposition: form-data; name=""area"""^ "multi"^ "line"^ "------WebKitFormBoundaryntXdlWbYXAVwCIMU--"^ "" --compressed
有什么办法可以让我用这个或者把它转换成有用的东西吗?
实际上,Chrome和其他浏览器一样,在将多部分表单转换为curl命令行方面做得相当差。
一个更方便的curl命令行不会使用--data-二进制
,它会使用--form
。然后,每个输入字段需要一个--form
。
在你的例子中,它可能看起来像(为了可见性,在此插入反斜杠):
curl "http://myserver.local" \
--compressed \
-H "Origin: http://wiki.selfhtml.org" \
-A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36" \
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" \
-H "Cache-Control: max-age=0" \
-e "http://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:HTML_form-Element1.html" \
-F area=[contents]
我把[contents]放在那里了,但是应该用区域中实际需要的内容替换它。如果愿意,也可以从文件中传递。
我删除了两个不必要的
-H
用法,并替换了两个以使用直接卷曲选项。
未来的建议:用curl命令行计算出要复制的确切HTTP头跟踪,并将其粘贴到https://curl.se/h2c/ .
我正试图将一个文件发送到box(云存储)。应该很容易,但事实并非如此。 我使用RequestBin进行调试。 在命令行上使用curl时,它工作得很好(文件被张贴到框中): 卷曲cli(正确): 生坯 -------------------------------------------------------------------------------------------------nam
我已经创建了一个使用“多部分/表单数据”的控制器 采样器请求对象 现在,我将尝试使用模拟MVC测试它,但我不知道如何将“多部分/表单数据”作为内容传递。我看到很多使用JSON的示例,但没有使用多部分/表单数据 有没有一种方法可以完成我的请求与多部分/form_data?理想情况下,它需要在MockHttpServletRequest的主体中
问题内容: 我在用Java应用程序服务器处理multipart / form-data请求时非常困难。从我发现的情况来看,servlet 3.0规范提供了诸如HttpServletRequest.getParts()之类的方法,这对于处理上传到我的servlet的表单数据是理想的。 但是,此方法是3.0 Servlet规范的一部分,并且我的应用程序服务器(Tomcat 6)尚不支持此方法。即使具有
问题内容: 在Apache Commons HttpClient的3.x版本中,可以进行multipart / form-data POST请求(2004年的示例)。不幸的是,这在HttpClient的4.0版本中不再可能。 对于我们的核心活动“ HTTP”,多部分内容超出了范围。我们很乐意使用由其他项目维护的多部分代码,但我对此一无所知。几年前,我们曾尝试将多部分代码移至commons编解码器,
我遇到了一个问题,我无法在我的资源中获取我的表单,变量总是为空 我的资源: 表单模型 我的取货请求: 和我的HttpClient: 为了确保我正在使用代理进行测试并且请求实际上是好的:变量文件名和徽标始终为空。 这是我的绒球.xml: 我不知道问题出在哪里。 我已经看过了多部分的官方resteasy文档,看不出问题在哪里。我已经用MultipartFormDataInput测试过,所有部分都是空的
所以这个HTML代码以正确的格式提交数据给我。 谢了!