Bug 43612

Summary: HTTP PUT does not honor request parameters
Product: JMeter - Now in Github Reporter: Greg Smith <gregsmit>
Component: HTTPAssignee: JMeter issues mailing list <issues>
Status: RESOLVED FIXED    
Severity: normal CC: p.mouawad
Priority: P2    
Version: 2.3   
Target Milestone: ---   
Hardware: Other   
OS: All   
Attachments: Tets plan with PUT requests using the two HTTP samplers
Put request with body
Http Sampler without expected body

Description Greg Smith 2007-10-12 07:21:27 UTC
When using the HTTP PUT method on an HTTP Sampler, the request parameters are
not honored.  If request parameters are specified, they are ignored and not
placed in the request.

The behavior of PUT should be similar to POST -- if request parameters are
specified, they should be included in the body of the request.

With new REST based applications, the use of the other HTTP verbs are much more
common, with PUT being a standard way to update data within REST a rest app.

Allowing PUT to work equivalent to POST (with request parameters and content
type) should be sufficient.
Comment 1 Alf Hogemark 2007-10-14 06:03:09 UTC
I believe this is fixed in SVN changelist 584535, so you can do some testing.
But I will not mark this bug as fixed before I have added some unit tests for
this case.
Comment 2 Greg Smith 2007-10-15 08:09:28 UTC
Hi Alf,

I extracted the latest (SVN 584775) and I am still having the problem with the
latest version.  To be more precise about my use case:

I have REST style app that uses JSON and HTTP verbs for all client interaction.
 When I tried to use HTTP PUT, with Content Encoding of "application/json",
Method of "PUT", and added a request parameter with my JSON data (Value = empty,
Encode = not checked, Include Equals = not checked), I got the following as the
request:

PUT /resources/employees/user1 HTTP/1.1
Connection: keep-alive
X-lori-time-1: 1192051198765
Accept-Encoding: gzip,deflate
Referer: http://localhost:8080/
Cache-Control: no-cache
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Pragma: no-cache
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7)
Gecko/20070914 Firefox/2.0.0.7
Keep-Alive: 300
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Host: localhost:8080
Accept-Language: en-us,en;q=0.5
Content-Type: application/json

With no body.  (no content length, either)

The original sampler item was created through the HTTP Proxy Server.  (which is
why it has all of the above headers)

By switching the same request to method = "POST", the JSON content from the
request parameter is available in the body.

I am happy to do any additional testing or help with debugging.
Thanks
Comment 3 Alf Hogemark 2007-10-15 12:29:00 UTC
(In reply to comment #2)
If you could attach the test plan (remove any usernames / passwords), that would
be great. Then I could use it for testing, just by changing the sampler
slightly, to point it to the "HTTP Mirror Server" of JMeter.

I think I'll manage to have a look at it tomorrow evening.
Comment 4 Alf Hogemark 2007-10-15 13:00:58 UTC
Created attachment 20985 [details]
Tets plan with PUT requests using the two HTTP samplers

I managed to do some testing today.
Here it the test plan I use for testing, against the HTTP Mirror server.
Comment 5 Alf Hogemark 2007-10-15 13:05:55 UTC
I think I have solved the problem now, you should try the SVN changelist 584882.
If you want to test that, it would be helpful.
I'll try to add unit tests for the code tomorrow, so that we can be more certain
that the code is correct.
Comment 6 Greg Smith 2007-10-15 13:25:25 UTC
Hi Alf,

I rebuilt with the latest, and my Test Plan with a PUT works now.  That seemed
to do it

Thanks much, 
Greg
Comment 7 Alf Hogemark 2007-10-16 11:17:36 UTC
Fixed in SVN changelist 585212.
Comment 8 Artem Fedorov 2018-03-21 15:03:17 UTC
Created attachment 35796 [details]
Put request with body
Comment 9 Artem Fedorov 2018-03-21 15:04:06 UTC
Created attachment 35797 [details]
Http Sampler without expected body
Comment 10 Philippe Mouawad 2018-04-02 12:20:25 UTC
*** Bug 60782 has been marked as a duplicate of this bug. ***
Comment 11 Philippe Mouawad 2018-04-02 12:32:33 UTC
Fixed within Bug 62248
Comment 12 The ASF infrastructure team 2022-09-24 20:37:40 UTC
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2035