在HTTP下有两个选项--自动重定向、和跟随重定向。当在未选中的情况下重定向时,我希望实现行为
//CASE 1: HttpClient client = HttpClientBuilder.create().build();
//CASE 2: HttpClient client = HttpClientBuilder.create().disableRedirectHandling().build();
HttpGet get = new HttpGet("${request_link}");
HttpResponse response = client.execute(get);
SampleResult.setResponseData(EntityUtils.toByteArray(response.getEntity()));
如上面所示,我使用"disableRedirectHandling“来停止自动重定向。但我得到的是200响应代码,而不是预期的302。
这是我为案例1获得的响应:响应代码: 200响应消息: OK响应头:
但我期待下面的回复:响应代码: 302响应消息:找到
响应标题: HTTP/1.1 302找到日期:星期五,2021年6月11日:32:45 GMT内容-长度:0连接:保持-活动缓存-控制:无缓存,无存储,最大值=0,必须重新验证Pragma:无缓存过期:0位置:{重定向位置链接}
注意: disableRedirectHandling()禁用重定向自动,但我想实现的是禁用,跟随重定向
基本上我想要这个setRedirectsEnabled(假)或setMaxRedirects(0)的一些东西。
我试过了,但没有运气,还在重定向。
HttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom().setRedirectsEnabled(true).setMaxRedirects(0).build()).build();
发布于 2021-06-11 05:16:31
您的案例2看起来是有效的,这是否是request_link
变量的问题呢?
JSR223测试元素具有一个特性(编译),可以显著提高性能。要从这个特性中获益:使用脚本文件而不是内联它们。如果这个特性在JMeter上可用,这将使ScriptEngine编译它们并缓存它们。 或者使用脚本文本并检查缓存编译脚本(如果可用的话)。使用此功能时,请确保脚本代码不直接在脚本代码中使用JMeter变量或JMeter函数调用,因为缓存只会首先缓存替换。则使用脚本参数。
因此,尝试将您的HttpGet("${request_link}");
替换为HttpGet(vars.get("request_link"));
,其中vars
代表JMeterVariables类实例(有关此和其他JMeter API快捷方式的更多信息,请参见在Groovy中应该使用的前8个JMeter Java类 )。
通常,没有使用JMeter的HTTP请求采样器构建请求的具体原因是什么?它支持cookie、报头、缓存管理器、嵌入式资源、身份验证、更好地集成报表等功能。
https://stackoverflow.com/questions/67929970
复制相似问题