最近要测试并发下公司网站的注册情况,需要模拟POST动作
下面记录下代码
public class TestReg {
public boolean doReg() throws IOException{
HttpPost httpost = new HttpPost("http://xxxx.xxxx.com/register/succeed/");
HttpClient httpclient = new DefaultHttpClient();
List<NameValuePair> nvps=new ArrayList<NameValuePair>();
//需要通过POST提交的参数
nvps.add(new BasicNameValuePair("realname", "陈一一"));
nvps.add(new BasicNameValuePair("pass1", "123456"));
nvps.add(new BasicNameValuePair("pass2", "123465"));
nvps.add(new BasicNameValuePair("parentemail", "ccx1999@163.com"));
nvps.add(new BasicNameValuePair("icoType", "1"));
httpost.setEntity(new UrlEncodedFormEntity(nvps,"utf-8"));
//增加COOKIE
httpost.setHeader("Cookie", "TOKEN=1234567890");
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
BufferedReader br=new BufferedReader(new InputStreamReader(entity.getContent()));
String temp="";
int i=0;
boolean bo=false;
while((temp=br.readLine())!=null){
//System.out.println(i);
//System.out.println(temp);
if(temp.indexOf("我的盒号")>0){
System.out.println(temp);
bo=true;
}
}
br.close();
return bo;
}
public static void main(String[] args) {
//总注册数
int sumRuntimes=20;
//最大线程数
int maxThread=5;
threadPoint=maxThread;
TestReg tr=new TestReg();
int nowRuntiems=0;
int maxRuntiems=sumRuntimes/maxThread;
boolean runPoint=true;
while(runPoint){
while(threadPoint==maxThread ){
threadPoint=0;
tr.doTest(maxThread);
nowRuntiems++;
System.out.println("开始"+nowRuntiems);
}
if(nowRuntiems==maxRuntiems){
runPoint=false;
}
}
}
static int threadPoint=0;
public void doTest(int maxThread){
int point=0;
while(point++<maxThread){
new Thread(new Runnable(){
public void run() {
try {
Date sd=new Date();
if(doReg()){
System.out.println("注册成功!");
}else{
System.out.println("注册失败");
}
Date ed=new Date();
System.out.println("运行时间="+(ed.getTime()-sd.getTime()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//完成执行线程
threadPoint++;
//System.out.println(threadPoint);
}
}
}).start();
}
}
}
分享到:
相关推荐
HttpClient模拟http发送post和get请求
CloseableHttpResponse response = httpClient.execute(httpPost); ``` 登录成功后,服务器通常会返回一个Set-Cookie响应头,其中包含了session ID。我们需要保存这个session ID,因为它是后续访问登录后页面的关键...
2. **HttpGet与HttpPost**:HttpClient提供了`HttpGet`和`HttpPost`类来分别处理HTTP GET和POST请求。创建请求对象时,我们需要指定请求的URL,如`HttpGet httpGet = new HttpGet("http://example.com")`。 3. **...
HttpClient的核心类包括HttpClient本身,HttpGet、HttpPost等请求方法,以及EntityEnclosingRequest接口,用于处理带有实体(如表单数据)的请求。在模拟登录时,我们通常会用到HttpPost,因为登录通常涉及到POST...
response = httpClient.execute(httpPost); ``` HttpClient提供了丰富的API来定制请求头、超时设置等。例如,你可以设置连接超时和读取超时: ```java RequestConfig config = RequestConfig.custom() ....
CloseableHttpResponse response = httpClient.execute(httpPost); ``` 5. **处理响应**:执行请求后,我们需要检查响应状态码,通常200表示成功。然后,我们可以读取响应体以获取登录后的页面内容或服务器返回的...
情景描述 将一个时间转换为对应的unix时间戳, ... ...除此之外,我们对请求添加签名的校验,key设置为X-Sign 接口定义 /// /// 获取时间戳(毫秒). .../// <param name=dateTime></param> ...[HttpPost] [AllowAnonymous]
JAVA使用HttpClient模拟浏览器GET、POST请求 在本文中,我们将介绍如何使用Apache Commons HttpClient库来模拟浏览器的GET和POST请求。HttpClient库是一个开放源码的项目,是Apache Commons项目的一部分,旨在简化...
在阅读博文《HttpClient模拟登陆》时,可以深入学习如何解决这些具体问题,并查看示例代码以获得更详细的实现细节。 标签“源码”意味着你需要关注底层的工作原理,而“工具”标签则暗示HttpClient作为一个实用工具...
对于后者,我们可以使用HttpPost对象来发送POST请求。 在示例代码中,我们首先继承DefaultHttpClient类,创建一个名为SSLClient的类。然后,我们在构造函数中初始化SSLContext对象,并使用X509TrustManager来忽略...
本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中...
- **导入依赖**:首先需要引入HTTPClient的相关类库,如`import org.apache.http.client.methods.HttpPost;`等。 - **创建HttpClient对象**:使用`DefaultHttpClient`或`CloseableHttpClient`来创建HTTP客户端对象...
总之,HTTPClient 模拟 POST 请求并封装 JSON 表单数据,主要是通过创建 `HttpPost` 对象,设置 JSON 实体,以及执行请求来完成的。这种方法在现代 Web 开发中很常见,特别是在需要发送复杂数据结构时。
除了创建`HttpClient`和`HttpPost`对象外,还需要创建一个`List<NameValuePair>`来存储表单参数,然后将其封装到`UrlEncodedFormEntity`中,再设置到`HttpPost`对象上。 ##### 示例代码: ```java public static ...
HttpResponse response = httpClient.execute(httpPost); ``` 6. **处理响应**:检查响应状态码,读取响应体,如果需要,可以反序列化成对象或者字符串。 ```java int statusCode = response.getStatusLine()....
HttpClient模拟客户端传输文件是Java开发中的常见需求,尤其在与服务器进行交互时,例如上传用户数据、图片或者其他文件。在这个过程中,我们通常会使用POST请求将文件作为请求体发送到服务器。 首先,我们需要引入...
创建`HttpPost`对象,并设置目标URL(通常是登录页面的URL)。 4. **添加请求头**:设置必要的请求头,如`Content-Type`,通常设置为`application/x-www-form-urlencoded`,表示数据是以表单方式提交的。 5. **...
模拟HTTP客户端工具使得开发者能够轻松地测试这些请求,而不必依赖于实际的网页浏览器。 HTTPClient是Java编程语言中的一个库,它提供了一组API来实现HTTP协议。这个库允许程序员创建、配置和执行复杂的HTTP请求,...
使用HttpClient来模拟浏览器GET_POST HttpClient是一个Apache开源组织中的项目,隶属于...HttpClient是一个非常有用的工具,帮助我们轻松地模拟浏览器GET_POST,解决了我们在编写HTTP客户端程序时经常碰到的几个问题。