even for default ports ?
On Tue, Nov 20, 2012 at 12:42 PM, sebb <[email protected]> wrote: > On 20 November 2012 12:58, Taoism <[email protected]> wrote: > > The port is specified in the HTTP Sampler. As is that the protocol is > HTTPS. > > > > The problem is that the "Location:" header includes both HTTPS and :443 > in > > the redirect URL and that the receiving server apparently expects that > :443 > > will be part of the URL even though it is implied by HTTPS (since 443 is > the > > default port for HTTPS). > > > > Thus in a BeanShell PostProcessor (in sampler that just ran) or in a > > BeanShell PreProcessor (in the next sampler) this happens: > > > > +-Sampler A > > -+-BSH PostProcessor A > > +-Sampler B > > -+-BSH PreProcessor B > > > > Sampler A and B both have the port set to 443 and the protocol to HTTPS. > > The domain is set in the sampler as well as the path. Previously I was > > dynamically grabbing the redirect location and building it up > dynamically in > > a preprocessor for the next sampler. However, to try and solve this > problem > > I have reverted to hardcoding the values into the sampler fields. The > > problem is when Sampler B executes, it doesn't add the port to the URL: > > > > //BSH PostProcessor A > > url = prev.getRedirectLocation(); > > //url is: 'https://domain:443/blah/SSO?qsStuff' > > > > //BSH PreProcessor B > > url = sampler.getUrl() > > //url is now 'https://domain/blah/SSO?qsStuff' > > > > So, the sampler when building the URL is leaving out the port. I assume > it > > is leaving it out because specifying port 443 AND HTTPS is redundant. > > > > I have looked through the API thought using the path as the whole URL may > > work: > > > http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.html#getUrl() > > "As a special case, if the path starts with "http[s]://", then the path > is > > assumed to be the entire URL." > > > > However, calling setPath() automatically calls parseArguments() and I > lose > > the query string component. > > > http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.html#setPath(java.lang.String) > > "Sets the Path attribute of the UrlConfig object Also calls > parseArguments > > to extract and store any query arguments" > > > > Which removes that as a possibility.... > > > > Just tested using the mirror server, and > > http://localhost:8081/abcd?def&geh > > shows up as > > GET /abcd?def&geh HTTP/1.1 > Host: localhost:8081 > > in all 3 implementations, so it does work. > > > > > > > -- > > View this message in context: > http://jmeter.512774.n5.nabble.com/How-to-force-the-port-to-be-used-in-an-HTTP-Sampler-tp5715344p5715360.html > > Sent from the JMeter - User mailing list archive at Nabble.com. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
