LoadRunner11目前仅支持jdk 1.6版本,在压测时,使用高版本的jdk生成的工具类调用会报错,jdk 1.6来开发调用http协议的工具类,工具使用Apache的httpclient实现,具体步骤如下,在这里下载源码。
1、pom引用
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.14</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<classifier>jdk15</classifier>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.13</version>
</dependency>
2、Content-Type为multipart/form-data的POST请求工具类实现,并支持文件上传,代码如下
private static final Integer CONNECT_TIMEOUT = 15000;
private static final Integer REND_TIMEOUT = 60000;
/**
* 使用httpClient发送post请求,contentType 类型为application/x-www-form-urlencoded
* @param httpurl 请求的url
* @param params 请求的参数
* @param headers 请求头
* @param filePathMap 上传文件
* @return
* @throws Exception
*/
public static EdsmHttpResponse sendPostFormRequst(String httpurl, Map<String, Object> params,
Map<String, Object> headers, Map<String, String> filePathMap) throws Exception {
EdsmHttpResponse resultResponse = null;
CloseableHttpClient httpClient = createSSLClientDefault(httpurl);
// 创建Post请求
HttpPost httpPost = new HttpPost(httpurl);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
String boundary = "DSPSBoundary" + System.currentTimeMillis();
builder.setBoundary(boundary);
httpPost.setHeader("Content-Type", "multipart/form-data; boundary=" + boundary);
// 设置其他自定义 headers
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, Object> header : headers.e