jmeter 中 http请求采样器中Client implementation HttpClient4和java区别实践一

本文主要是介绍jmeter 中 http请求采样器中Client implementation HttpClient4和java区别实践一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

好吧,最近还是在折腾Jmeter,在一个post请求中,发现啃爹的竟然带有特殊字符:'

  怎么办,直接将数据写入,如下:

   

然后在实际用post发请求时,jmeter自动给转义了,如下:

xxxx=%27qq%27%3A%2720%27&rrr=%7Bqq%27

  怎么办???那就加加转义字符试试,与是,加了"\",“\\”,“\\\”,“\\\\”都没用

 

只能换方法了

这时,几年前写的jmter请求客户端发送机制回到脑海,又重读了一遍

我们将Implementation换成Java的方式来试一试

结果终于发现,符号' 没有转义,正常发出

 
  1. POST data:

  2. xxxx='qq':'20'&rrr={'qq':'233'}

原来,默认的HTTPClinet在POST时会自动将特殊字符转义,然而Java在发送过程中却未处理。

=====================================================================================

=====================================================================================

其他解决方法

2.若想不设implementation值,则需进行c参数d参数URLEncoding

复制代码

 1 import java.io.UnsupportedEncodingException;2 import java.net.URLEncoder;3     public static String UrlEncode(String result) throws UnsupportedEncodingException{4           StringBuffer urle = new StringBuffer();5             String[] results = result.split("&");6             int i = 0;7             for(String tempStr : results)8             {9                 int start = tempStr.indexOf("{");                
10                 int end = tempStr.lastIndexOf("}")+1;        
11                 //要urlencode的字符串组合
12                 String str = tempStr.substring(start, end);
13                 String key = tempStr.replace(str, "");
14                 //urlencode的消息体
15                 String data = URLEncoder.encode(str, "UTF-8");
16                 if(i > 0)
17                 {
18                     urle.append("&");
19                 }
20                 urle.append(key);
21                 urle.append(data);
22                 i++;
23             }
24             return urle.toString();
25     }
26 String req = UrlEncode(Parameters);
27 log.info(req);
28 vars.put("req",req);

复制代码

 方法二(优化):

 


这篇关于jmeter 中 http请求采样器中Client implementation HttpClient4和java区别实践一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848125

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。