Class HTTPAbstractImpl
- All Implemented Interfaces:
HTTPConstantsInterface
,Interruptible
- Direct Known Subclasses:
HTTPFileImpl
,HTTPHCAbstractImpl
,HTTPJavaImpl
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final boolean
Should we add to POST request content-type header if missing: Content-Type: application/x-www-form-urlencodedprotected final HTTPSamplerBase
Fields inherited from interface org.apache.jmeter.protocol.http.util.HTTPConstantsInterface
APPLICATION_X_WWW_FORM_URLENCODED, CACHE_CONTROL, CONNECT, CONNECTION_CLOSE, COPY, DATE, DEFAULT_HTTP_PORT, DEFAULT_HTTP_PORT_STRING, DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_PORT_STRING, DELETE, ENCODING_BROTLI, ENCODING_DEFLATE, ENCODING_GZIP, ETAG, EXPIRES, GET, HEAD, HEADER_AUTHORIZATION, HEADER_CONNECTION, HEADER_CONTENT_DISPOSITION, HEADER_CONTENT_ENCODING, HEADER_CONTENT_LENGTH, HEADER_CONTENT_TYPE, HEADER_COOKIE, HEADER_COOKIE_IN_REQUEST, HEADER_HOST, HEADER_LOCAL_ADDRESS, HEADER_LOCATION, HEADER_SET_COOKIE, HTTP_1_1, IF_MODIFIED_SINCE, IF_NONE_MATCH, KEEP_ALIVE, LAST_MODIFIED, LOCK, MKCALENDAR, MKCOL, MOVE, MULTIPART_FORM_DATA, OPTIONS, PATCH, POST, PROPFIND, PROPPATCH, PROTOCOL_HTTP, PROTOCOL_HTTPS, PUT, REPORT, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_PERMANENT_REDIRECT, SC_SEE_OTHER, SC_TEMPORARY_REDIRECT, SEARCH, TRACE, TRANSFER_ENCODING, UNLOCK, VARY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final void
configureSampleLabel
(SampleResult res, URL url) protected HTTPSampleResult
errorResult
(Throwable t, HTTPSampleResult res) Populates the provided HTTPSampleResult with details from the Exception.protected Arguments
InvokesHTTPSamplerBase.getArguments()
protected AuthManager
InvokesHTTPSamplerBase.getAuthManager()
protected boolean
protected CacheManager
protected int
protected String
protected CookieManager
protected boolean
protected HeaderManager
protected HTTPFileArg[]
Get the collection of files as a list.protected String
InvokesHTTPSamplerBase.getIpSource()
protected InetAddress
Gets the IP source address (IP spoofing) if one has been provided.protected String
InvokesHTTPSamplerBase.getProxyHost()
protected String
InvokesHTTPSamplerBase.getProxyPass()
protected int
protected String
InvokesHTTPSamplerBase.getProxyScheme()
protected String
InvokesHTTPSamplerBase.getProxyUser()
protected int
protected boolean
Determine whether to send a file as the entire body of an entity enclosing request such as POST, PUT or PATCH.protected boolean
Determine whether to send concatenated parameters as the entire body of an entity enclosing request such as POST, PUT or PATCH.protected boolean
protected boolean
Determine if we should usemultipart/form-data
orapplication/x-www-form-urlencoded
for the methodprotected boolean
Deprecated.protected boolean
InvokesHTTPSamplerBase.hasArguments()
protected boolean
Deprecated.since 3.2 always return falseprotected boolean
isSuccessCode
(int errorLevel) Determine if the HTTP status code is successful or not i.e.protected void
protected void
Deprecated.** unused since r1489189.protected byte[]
readResponse
(SampleResult res, BufferedInputStream in, int contentLength) Deprecated.protected byte[]
readResponse
(SampleResult res, BufferedInputStream in, long contentLength) Read response from the input stream, converting to MD5 digest if the useMD5 property is set.protected byte[]
readResponse
(SampleResult res, InputStream instream, int responseContentLength) Read response from the input stream, converting to MD5 digest if the useMD5 property is set.protected byte[]
readResponse
(SampleResult res, InputStream instream, long responseContentLength) Read response from the input stream, converting to MD5 digest if the useMD5 property is set.protected HTTPSampleResult
resultProcessing
(boolean areFollowingRedirect, int frameDepth, HTTPSampleResult res) Follow redirects and download page resources if appropriate.protected abstract HTTPSampleResult
protected void
setUseKeepAlive
(boolean b) protected void
protected HTTPSampleResult
Update HTTPSampleResult for a resource in cacheMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.jmeter.samplers.Interruptible
interrupt
-
Field Details
-
ADD_CONTENT_TYPE_TO_POST_IF_MISSING
protected static final boolean ADD_CONTENT_TYPE_TO_POST_IF_MISSINGShould we add to POST request content-type header if missing: Content-Type: application/x-www-form-urlencoded -
ALL_EXCEPT_COOKIE
-
ONLY_COOKIE
-
testElement
-
-
Constructor Details
-
HTTPAbstractImpl
-
-
Method Details
-
sample
protected abstract HTTPSampleResult sample(URL url, String method, boolean areFollowingRedirect, int frameDepth) -
threadFinished
protected void threadFinished() -
notifyFirstSampleAfterLoopRestart
protected void notifyFirstSampleAfterLoopRestart() -
errorResult
Populates the provided HTTPSampleResult with details from the Exception. Does not create a new instance, so should not be used directly to add a subsample.See
HTTPSamplerBase.errorResult(Throwable, HTTPSampleResult)
- Parameters:
t
- Exception representing the error.res
- SampleResult to be modified- Returns:
- the modified sampling result containing details of the Exception. Invokes
-
getArguments
InvokesHTTPSamplerBase.getArguments()
- Returns:
- the arguments of the associated test element
-
getAuthManager
InvokesHTTPSamplerBase.getAuthManager()
- Returns:
- the
AuthManager
of the associated test element
-
getAutoRedirects
protected boolean getAutoRedirects()- Returns:
- flag whether to do auto redirects
-
getCacheManager
- Returns:
- the
CacheManager
of the associated test element
-
getConnectTimeout
protected int getConnectTimeout()- Returns:
- the connect timeout of the associated test element
-
getContentEncoding
- Returns:
- the encoding of the content, i.e. its charset name
-
getCookieManager
- Returns:
- the
CookieManager
of the associated test element
-
getHeaderManager
- Returns:
- the
HeaderManager
of the associated test element
-
getHTTPFiles
Get the collection of files as a list. The list is built up from the filename/filefield/mimetype properties, plus any additional entries saved in the FILE_ARGS property.If there are no valid file entries, then an empty list is returned.
Invokes
HTTPSamplerBase.getHTTPFiles()
- Returns:
- an array of file arguments (never
null
)
-
getIpSource
InvokesHTTPSamplerBase.getIpSource()
- Returns:
- the configured ip source for the associated test element
-
getIpSourceAddress
Gets the IP source address (IP spoofing) if one has been provided.- Returns:
- the IP source address to use (or
null
, if none provided or the device address could not be found) - Throws:
UnknownHostException
- if the hostname/ip forgetIpSource()
could not be resolved or not interface was found for itSocketException
- if an I/O error occurs
-
getProxyScheme
InvokesHTTPSamplerBase.getProxyScheme()
- Returns:
- the configured host scheme to use for proxy
-
getProxyHost
InvokesHTTPSamplerBase.getProxyHost()
- Returns:
- the configured host to use as a proxy
-
getProxyPass
InvokesHTTPSamplerBase.getProxyPass()
- Returns:
- the configured password to use for the proxy
-
getProxyPortInt
protected int getProxyPortInt()- Returns:
- the configured port to use for the proxy
-
getProxyUser
InvokesHTTPSamplerBase.getProxyUser()
- Returns:
- the configured user to use for the proxy
-
getResponseTimeout
protected int getResponseTimeout()- Returns:
- the configured timeout for responses
-
getSendFileAsPostBody
protected boolean getSendFileAsPostBody()Determine whether to send a file as the entire body of an entity enclosing request such as POST, PUT or PATCH. InvokesHTTPSamplerBase.getSendFileAsPostBody()
- Returns:
- flag whether to send a file as POST, PUT or PATCH
-
getSendParameterValuesAsPostBody
protected boolean getSendParameterValuesAsPostBody()Determine whether to send concatenated parameters as the entire body of an entity enclosing request such as POST, PUT or PATCH. InvokesHTTPSamplerBase.getSendParameterValuesAsPostBody()
- Returns:
- flag whether to send concatenated parameters as the entire body
-
getUseKeepAlive
protected boolean getUseKeepAlive()- Returns:
- flag whether to use keep-alive for requests
-
getUseMultipartForPost
Deprecated.Determine if we should usemultipart/form-data
orapplication/x-www-form-urlencoded
for the post- Returns:
true
ifmultipart/form-data
should be used and method is POST
-
getUseMultipart
protected boolean getUseMultipart()Determine if we should usemultipart/form-data
orapplication/x-www-form-urlencoded
for the method- Returns:
true
ifmultipart/form-data
should be used
-
getDoBrowserCompatibleMultipart
protected boolean getDoBrowserCompatibleMultipart()- Returns:
- flag whether we should do browser compatible multiparts
-
hasArguments
protected boolean hasArguments()InvokesHTTPSamplerBase.hasArguments()
- Returns:
- flag whether we have arguments to send
-
isMonitor
Deprecated.since 3.2 always return falseInvokesHTTPSamplerBase.isMonitor()
- Returns:
- flag whether monitor is enabled
-
isSuccessCode
protected boolean isSuccessCode(int errorLevel) Determine if the HTTP status code is successful or not i.e. in range 200 to 399 inclusive- Parameters:
errorLevel
- status code to check- Returns:
- whether in range 200-399 or not
-
readResponse
protected byte[] readResponse(SampleResult res, InputStream instream, int responseContentLength) throws IOException Read response from the input stream, converting to MD5 digest if the useMD5 property is set.For the MD5 case, the result byte count is set to the size of the original response.
Closes the inputStream
Invokes
HTTPSamplerBase.readResponse(SampleResult, InputStream, long)
- Parameters:
res
- sample to store information about the response intoinstream
- input stream from which to read the responseresponseContentLength
- expected input length or zero- Returns:
- the response or the MD5 of the response
- Throws:
IOException
- if reading the result fails
-
readResponse
protected byte[] readResponse(SampleResult res, InputStream instream, long responseContentLength) throws IOException Read response from the input stream, converting to MD5 digest if the useMD5 property is set.For the MD5 case, the result byte count is set to the size of the original response.
Closes the inputStream
Invokes
HTTPSamplerBase.readResponse(SampleResult, InputStream, long)
- Parameters:
res
- sample to store information about the response intoinstream
- input stream from which to read the responseresponseContentLength
- expected input length or zero- Returns:
- the response or the MD5 of the response
- Throws:
IOException
- if reading the result fails
-
readResponse
@Deprecated protected byte[] readResponse(SampleResult res, BufferedInputStream in, int contentLength) throws IOException Deprecated.Read response from the input stream, converting to MD5 digest if the useMD5 property is set.For the MD5 case, the result byte count is set to the size of the original response.
Closes the inputStream
Invokes
HTTPSamplerBase.readResponse(SampleResult, InputStream, long)
- Parameters:
res
- sample to store information about the response intoin
- input stream from which to read the responsecontentLength
- expected input length or zero- Returns:
- the response or the MD5 of the response
- Throws:
IOException
- when reading the result fails
-
readResponse
protected byte[] readResponse(SampleResult res, BufferedInputStream in, long contentLength) throws IOException Read response from the input stream, converting to MD5 digest if the useMD5 property is set.For the MD5 case, the result byte count is set to the size of the original response.
Closes the inputStream
Invokes
HTTPSamplerBase.readResponse(SampleResult, InputStream, long)
- Parameters:
res
- sample to store information about the response intoin
- input stream from which to read the responsecontentLength
- expected input length or zero- Returns:
- the response or the MD5 of the response
- Throws:
IOException
- when reading the result fails
-
resultProcessing
protected HTTPSampleResult resultProcessing(boolean areFollowingRedirect, int frameDepth, HTTPSampleResult res) Follow redirects and download page resources if appropriate. this works, but the container stuff here is what's doing it. followRedirects() is actually doing the work to make sure we have only one container to make this work more naturally, I think this method - sample() - needs to take an HTTPSamplerResult container parameter instead of a boolean:areFollowingRedirect.Invokes
HTTPSamplerBase.resultProcessing(boolean, int, HTTPSampleResult)
- Parameters:
areFollowingRedirect
- flag whether we are getting a redirect targetframeDepth
- Depth of this target in the frame structure. Used only to prevent infinite recursion.res
- sample result to process- Returns:
- the sample result
-
setUseKeepAlive
protected void setUseKeepAlive(boolean b) - Parameters:
b
- flag whether to use keep-alive for requests
-
notifySSLContextWasReset
Deprecated.** unused since r1489189. **Called by testIterationStart if the SSL Context was reset. This implementation does nothing. -
updateSampleResultForResourceInCache
Update HTTPSampleResult for a resource in cache- Parameters:
res
-HTTPSampleResult
- Returns:
- HTTPSampleResult
-
configureSampleLabel
-
getUseMultipart()