首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止How请求遵循重定向

如何防止How请求遵循重定向
EN

Stack Overflow用户
提问于 2021-06-11 00:36:43
回答 1查看 537关注 0票数 1

在HTTP下有两个选项--自动重定向、跟随重定向。当在未选中的情况下重定向时,我希望实现行为

代码语言:javascript
运行
复制
//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)的一些东西。

我试过了,但没有运气,还在重定向。

代码语言:javascript
运行
复制
HttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom().setRedirectsEnabled(true).setMaxRedirects(0).build()).build();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-11 05:16:31

您的案例2看起来是有效的,这是否是request_link变量的问题呢?

根据JSR223取样器文档

JSR223测试元素具有一个特性(编译),可以显著提高性能。要从这个特性中获益:使用脚本文件而不是内联它们。如果这个特性在JMeter上可用,这将使ScriptEngine编译它们并缓存它们。 或者使用脚本文本并检查缓存编译脚本(如果可用的话)。使用此功能时,请确保脚本代码不直接在脚本代码中使用JMeter变量或JMeter函数调用,因为缓存只会首先缓存替换。则使用脚本参数。

因此,尝试将您的HttpGet("${request_link}");替换为HttpGet(vars.get("request_link"));,其中vars代表JMeterVariables类实例(有关此和其他JMeter API快捷方式的更多信息,请参见在Groovy中应该使用的前8个JMeter Java类 )。

通常,没有使用JMeter的HTTP请求采样器构建请求的具体原因是什么?它支持cookie、报头、缓存管理器、嵌入式资源、身份验证、更好地集成报表等功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67929970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档