Hi,
I'm trying to resolve a user issue when he claims that file upload
scenario is missing "filename" parameter. When I use HTTPClient4 I get
failing file upload request:
POST http://localhost/api/file/upload/
POST data:
--cJfjtjR2_380MwSzTd_SQdQfG51aS5D
Content-Disposition: form-data; name="jtl_file";
Content-Type: application/octet-stream
<actual file content, not shown here>
--cJfjtjR2_380MwSzTd_SQdQfG51aS5D--
While for HTTPClient3.1 I have successful request with:
POST http://localhost/api/file/upload/
POST data:
--wqkPl1L84AqGtph2Cgr79xYPJVMxntF4IJ
Content-Disposition: form-data; name="jtl_file";
*filename="011f023437.jtl.gz" *
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
<actual file content, not shown here>
--wqkPl1L84AqGtph2Cgr79xYPJVMxntF4IJ--
After digging into HTTPClient4 implementation I found that we're really
do not pass filename parameter to underlying http library. This is easy
to fix by changing this line:
https://github.com/apache/jmeter/blob/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java#L966
from
super(file, mimeType);
into:
super(file, file.getName(), mimeType, null);
Questions:
1. Is that a bug? Maybe a known one? Or this is intended behavior.
2. Should I fix this as demonstrated (if this is a bug)?
--
Andrey Pokhilko