Index: src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java =================================================================== --- src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java (révision 1632612) +++ src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java (copie de travail) @@ -108,6 +108,7 @@ import org.apache.jmeter.protocol.http.control.CacheManager; import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache.jmeter.protocol.http.control.HeaderManager; +import org.apache.jmeter.protocol.http.sampler.HttpWebdav; import org.apache.jmeter.protocol.http.util.EncoderCache; import org.apache.jmeter.protocol.http.util.HC4TrustAllSSLSocketFactory; import org.apache.jmeter.protocol.http.util.HTTPArgument; @@ -296,6 +297,8 @@ httpRequest = new HttpGet(uri); } else if (method.equals(HTTPConstants.PATCH)) { httpRequest = new HttpPatch(uri); + } else if (HttpWebdav.isWebdavMethod(method)) { + httpRequest = new HttpWebdav(method, uri); } else { throw new IllegalArgumentException("Unexpected method: '"+method+"'"); } @@ -438,6 +441,7 @@ String postBody = sendPostData((HttpPost)httpRequest); result.setQueryString(postBody); } else if (method.equals(HTTPConstants.PUT) || method.equals(HTTPConstants.PATCH) + || HttpWebdav.isWebdavMethod(method) || method.equals(HTTPConstants.DELETE)) { String entityBody = sendEntityData(( HttpEntityEnclosingRequestBase)httpRequest); result.setQueryString(entityBody); Index: src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampleResult.java =================================================================== --- src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampleResult.java (révision 1632612) +++ src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampleResult.java (copie de travail) @@ -138,6 +138,7 @@ // Include request body if it is a post or put or patch if (HTTPConstants.POST.equals(method) || HTTPConstants.PUT.equals(method) || HTTPConstants.PATCH.equals(method) + || HttpWebdav.isWebdavMethod(method) || HTTPConstants.DELETE.equals(method)) { sb.append("\n"+method+" data:\n"); sb.append(queryString); Index: src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java =================================================================== --- src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java (révision 1632612) +++ src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java (copie de travail) @@ -232,6 +232,13 @@ HTTPConstants.TRACE, HTTPConstants.DELETE, HTTPConstants.PATCH, + HTTPConstants.PROPFIND, + HTTPConstants.PROPPATCH, + HTTPConstants.MKCOL, + HTTPConstants.COPY, + HTTPConstants.MOVE, + HTTPConstants.LOCK, + HTTPConstants.UNLOCK }; private static final List METHODLIST = Collections.unmodifiableList(Arrays.asList(METHODS)); Index: src/protocol/http/org/apache/jmeter/protocol/http/util/HTTPConstantsInterface.java =================================================================== --- src/protocol/http/org/apache/jmeter/protocol/http/util/HTTPConstantsInterface.java (révision 1632612) +++ src/protocol/http/org/apache/jmeter/protocol/http/util/HTTPConstantsInterface.java (copie de travail) @@ -39,6 +39,13 @@ String TRACE = "TRACE"; // $NON-NLS-1$ String DELETE = "DELETE"; // $NON-NLS-1$ String PATCH = "PATCH"; // $NON-NLS-1$ + String PROPFIND = "PROPFIND"; // $NON-NLS-1$ + String PROPPATCH = "PROPPATCH"; // $NON-NLS-1$ + String MKCOL = "MKCOL"; // $NON-NLS-1$ + String COPY = "COPY"; // $NON-NLS-1$ + String MOVE = "MOVE"; // $NON-NLS-1$ + String LOCK = "LOCK"; // $NON-NLS-1$ + String UNLOCK = "UNLOCK"; // $NON-NLS-1$ String CONNECT = "CONNECT"; // $NON-NLS-1$ String HEADER_AUTHORIZATION = "Authorization"; // $NON-NLS-1$ String HEADER_COOKIE = "Cookie"; // $NON-NLS-1$ Index: xdocs/usermanual/component_reference.xml =================================================================== --- xdocs/usermanual/component_reference.xml (révision 1632612) +++ xdocs/usermanual/component_reference.xml (copie de travail) @@ -152,6 +152,7 @@ See Java bugs 6226610 and 6208335.
  • It does not support virtual hosts.
  • +
  • It does not support the following methods: COPY, LOCK, MKCOL, MOVE, PATCH, PROPFIND, PROPPATCH, UNLOCK.
  • Note: the FILE protocol is intended for testing purposes only. It is handled by the same code regardless of which HTTP Sampler is used.

    @@ -222,7 +223,9 @@ If not specified (and not defined by HTTP Request Defaults), the default depends on the value of the JMeter property jmeter.httpsampler, failing that, the HttpClient4 implementation is used. HTTP, HTTPS or FILE. Default: HTTP - GET, POST, HEAD, TRACE, OPTIONS, PUT, DELETE, PATCH (not supported for JAVA implementation) + GET, POST, HEAD, TRACE, OPTIONS, PUT, DELETE, PATCH (not supported for + JAVA implementation). With HttpClient4, the following methods are also allowed: COPY, LOCK, MKCOL, MOVE, + PROPFIND, PROPPATCH, UNLOCK. Content encoding to be used (for POST, PUT, PATCH and FILE). This the the character encoding to be used, and is not related to the Content-Encoding HTTP header.