导入httpclient jar包 创建maven工程
httpclient 发送get请求
package com.testing91;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
/*** 接口测试四大步骤: 1 数据准备 2 测试执行 3 数据校验 检查 4 数据清洗
*
* DatabaseComputer Server Httpclient request 强制使用这种fang
*
* @author Administrator
*
*/
public class HttpclientForDatabaseComputerGet {
// send url is http://localhost:9000/computers?f=ACE
private static String uri = "http://localhost:9000/computers?f=ACE";
public static void main(String[] args) {
try {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(uri);
CloseableHttpResponse httpResponse = httpclient.execute(httpGet);
// 3 获取响应体数据流,然后放入缓冲区
BufferedReader in = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
StringBuffer sb = new StringBuffer("");
String line = "";
// 4 读取缓冲区内容为字符串
while ((line = in.readLine()) != null) {
sb.append(line + "\n");
}
// 5 关闭缓冲区
in.close();
String content = sb.toString();
// 6 测试校验
System.out.println(content);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
httpclient 发送post请求单线程
package com.testing91;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
/***
* 接口测试四大步骤: 1 数据准备 2 测试执行 3 数据校验 检查 4 数据清洗
*
* DatabaseComputer Server Httpclient request 强制使用这种fang
*
* @author Administrator
*
*/
public class HttpclientForDatabaseComputerPost {
// send url is http://localhost:9000/computers?f=ACE
private static String uriPOST = "http://localhost:9000/computers";
public static void main(String[] args) {
try {
for (int i = 0; i < 10; i++) {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(uriPOST);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", "test" + i));
params.add(new BasicNameValuePair("introduced", "2017-2-19"));
params.add(new BasicNameValuePair("discontinued", "2017-2-19"));
params.add(new BasicNameValuePair("company", "22"));
httpPost.setEntity(new UrlEncodedFormEntity(params));
long startTime = System.currentTimeMillis();
CloseableHttpResponse httpResponse = httpclient.execute(httpPost);
System.out.println((System.currentTimeMillis()-startTime) + "ms");
// System.out.println(httpResponse.getStatusLine().getStatusCode());
// 3 获取响应体数据流,然后放入缓冲区
BufferedReader in = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
StringBuffer sb = new StringBuffer("");
String line = "";
// 4 读取缓冲区内容为字符串
while ((line = in.readLine()) != null) {
sb.append(line + "\n");
}
// 5 关闭缓冲区
in.close();
String content = sb.toString();
// 6 测试校验
// System.out.println(content);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
httpclient 发送post请求 多线程
package com.testing91;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
/***
* 接口测试四大步骤: 1 数据准备 2 测试执行 3 数据校验 检查 4 数据清洗
*
* DatabaseComputer Server Httpclient request 强制使用这种fang
*
* @author Administrator
*
*/
public class HttpclientForDatabaseComputerPost2 {
// send url is http://localhost:9000/computers?f=ACE
private static String uriPOST = "http://localhost:9000/computers";
public static int sendPostRequest(String ThreadName) throws ClientProtocolException, IOException {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(uriPOST);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", "test"));
params.add(new BasicNameValuePair("introduced", "2017-2-19"));
params.add(new BasicNameValuePair("discontinued", "2017-2-19"));
params.add(new BasicNameValuePair("company", "22"));
httpPost.setEntity(new UrlEncodedFormEntity(params));
long startTime = System.currentTimeMillis();
CloseableHttpResponse httpResponse = httpclient.execute(httpPost);
int responseCode = httpResponse.getStatusLine().getStatusCode();
System.out.println(responseCode + " ," + (System.currentTimeMillis() - startTime) + "ms" + " ," + ThreadName);
return responseCode;
}
public static void main(String[] args) {
// 5个线程 跑1分钟
final long startTime = System.currentTimeMillis();
for (int i = 0; i < 5; i++) {
Thread t = new Thread(new Runnable() {
AtomicBoolean flag = new AtomicBoolean(true);
public void run() {
while (flag.get()) {
try {
if ((System.currentTimeMillis() - startTime) >= 60 * 1000) {
flag.set(false);
}
sendPostRequest(Thread.currentThread().getName());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
t.start();
}
}
}