sdo*_*oca 5 testing post http multipartform-data apache-commons
我试图找到一个工具,允许我测试multipart/form-data POST请求并调整请求.具体来说,我想测试内容类型标题中是否存在分号:
multipart/form-data; boundary=140f0f40c9f411e19b230800200c9a66
Run Code Online (Sandbox Code Playgroud)
我们有一个不发送分号的客户端,我们的新servlet(使用Apache Commons FileUpload)无法解析上传的文件.旧版本的servlet使用不同的库方法来接受/解析请求,它可以解析文件.在我通过包含分号来证明请求将成功之前,客户端应用程序的所有者不希望对其进行任何更改.
我一直在使用cURL来对servlet运行我的测试,但我不能调整它生成的请求以排除分号.我已经尝试了Firefox和Fiddler的Poster插件来生成测试POST请求,但是它们导致了这个错误:
org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly
Run Code Online (Sandbox Code Playgroud)
有没有人找到一种方法来成功测试带有上传文件的multipart/form-data POST请求?
您可以用于curl
测试这些库,这是使用 multipart/form-data POST 的示例:/sf/answers/753567111/
我喜欢像curl这样的命令行工具的一件事是它很容易重复(在bash中,向上和输入),并且您可以保存测试以供以后使用。
编辑:绝对可以发送您想要测试的自定义标头。关键是使用curl 的原始命令而不是为您格式化请求的便捷方法。用于-H
传递原始标头,并用于--data-binary
从文件传递正文而不更改行结尾(对于必须具有 CRLF 行结尾的multipart/form-data 非常重要)。这是一个例子:
curl -X POST -H "Content-Type: multipart/form-data; boundary=----------------------------4ebf00fbcf09" --data-binary @test.txt http://localhost:3000/test
Run Code Online (Sandbox Code Playgroud)
如果不使用中间文件更方便,你可以像这样写一行:
curl -X POST -H "Content-Type: multipart/form-data; boundary=----------------------------4ebf00fbcf09" -d $'------------------------------4ebf00fbcf09\r\nContent-Disposition: form-data; name="example"\r\n\r\ntest\r\n------------------------------4ebf00fbcf09--\r\n' http://localhost:3000/test
Run Code Online (Sandbox Code Playgroud)
这两个示例包含分号,但您可以根据需要将其删除。
归档时间: |
|
查看次数: |
10713 次 |
最近记录: |