【发包工具】http多线程发包工具
【发包工具】http多线程发包工具
使用方法:输入地址,发送的内容,线程数,等待时间,每个线程发送的次数,GET/POST请求。
源代码
package com.xmxkkk.httptest;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
public class MainWindow extends JFrame {
// HttpClient httpclient;
private JPanel contentPane;
private BorderLayout borderLayout1;
private JPanel panURL;
private JPanel jPanel1;
private JPanel jPanel2;
private GridLayout gridLayout1;
private JTextField URLTxt;
private JSplitPane jSplitPane1;
private JScrollPane jScrollPane1;
private JScrollPane jScrollPane2;
private JTextArea jTextArea1;
private JTextArea jTextArea2;
private JScrollPane jScrollPane3;
private JTextArea jTextArea3;
private JButton jButton1;
private JButton jButton2;
private JPanel jPanel3;
private JRadioButton jRadioGet;
private JRadioButton jRadioPost;
public String method;
private JPanel jPanel4;
private ButtonGroup buttonGroup1;
private JButton jButton3;
private JCheckBox jCheckWrap;
private BorderLayout borderLayout2;
private TitledBorder titledBorder1;
private JTextField thread;
private JTextField num;
private JTextField time;
public MainWindow() {
// httpclient = null;
thread=new JTextField(5);
num=new JTextField(5);
time=new JTextField(5);
borderLayout1 = new BorderLayout();
panURL = new JPanel();
jPanel1 = new JPanel();
jPanel2 = new JPanel();
gridLayout1 = new GridLayout();
URLTxt = new JTextField();
jSplitPane1 = new JSplitPane();
jScrollPane1 = new JScrollPane();
jScrollPane2 = new JScrollPane();
jTextArea1 = new JTextArea();
jTextArea2 = new JTextArea();
jScrollPane3 = new JScrollPane();
jTextArea3 = new JTextArea();
jButton1 = new JButton();
jButton2 = new JButton();
jPanel3 = new JPanel();
jRadioGet = new JRadioButton();
jRadioPost = new JRadioButton();
method = "POST";
jPanel4 = new JPanel();
buttonGroup1 = new ButtonGroup();
jButton3 = new JButton();
jCheckWrap = new JCheckBox();
borderLayout2 = new BorderLayout();
enableEvents(64L);
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
// httpclient = new HttpClient(this,jTextArea1);
contentPane = (JPanel) getContentPane();
titledBorder1 = new TitledBorder("");
contentPane.setLayout(borderLayout1);
setSize(new Dimension(652, 460));
setTitle("Http testing tool");
jPanel1.setLayout(gridLayout1);
gridLayout1.setColumns(1);
URLTxt.setBackground(SystemColor.desktop);
URLTxt.setForeground(Color.yellow);
URLTxt.setBorder(BorderFactory.createEtchedBorder());
URLTxt.setNextFocusableComponent(jButton1);
// URLTxt.setToolTipText("Input the connection URL");
URLTxt.setMargin(new Insets(5, 5, 5, 5));
URLTxt.setText("http://");
URLTxt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
URLTxt_actionPerformed(e);
}
});
jSplitPane1.setOrientation(0);
jSplitPane1.setDividerSize(8);
// jTextArea1.setToolTipText("Edit the request xml");
jTextArea1.setText("");
jTextArea2.setText("");
jTextArea3.setForeground(Color.blue);
// jTextArea3.setToolTipText("Recived message");
jTextArea3.setText("");
jTextArea3.setLineWrap(true);
jTextArea3.setWrapStyleWord(true);
jButton1.setText("Send");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
jButton2.setText("Exit");
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jRadioGet.setForeground(new Color(0, 0, 230));
jRadioGet.setText("GET");
jRadioGet.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jRadioGet_actionPerformed(e);
}
});
jRadioPost.setForeground(new Color(0, 0, 230));
jRadioPost.setText("POST");
jRadioPost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jRadioPost_actionPerformed(e);
}
});
panURL.setLayout(borderLayout2);
jButton3.setText("Clear");
jButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton3_actionPerformed(e);
}
});
jCheckWrap.setSelected(true);
jCheckWrap.setText("LineWrap");
jCheckWrap.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jCheckWrap_actionPerformed(e);
}
});
contentPane.add(jPanel1, "Center");
contentPane.add(panURL, "North");
contentPane.add(jPanel2, "South");
panURL.add(URLTxt, "Center");
jPanel2.add(new JLabel("线程"));
jPanel2.add(thread,null);
jPanel2.add(new JLabel("次数"));
jPanel2.add(num,null);
jPanel2.add(new JLabel("延时"));
jPanel2.add(time,null);
jPanel2.add(jCheckWrap, null);
jPanel2.add(jPanel4, null);
jPanel2.add(jPanel3, null);
jPanel3.add(jRadioGet, null);
jPanel3.add(jRadioPost, null);
jRadioPost.setSelected(true);
buttonGroup1.add(jRadioGet);
buttonGroup1.add(jRadioPost);
jPanel2.add(jButton1, null);
jPanel2.add(jButton3, null);
jPanel2.add(jButton2, null);
jPanel1.add(jSplitPane1, null);
jSplitPane1.add(jScrollPane1, "top");
jSplitPane1.add(jScrollPane3, "bottom");
jScrollPane3.getViewport().add(jTextArea3, null);
jScrollPane1.getViewport().add(jTextArea1, null);
jScrollPane2.getViewport().add(jTextArea2, null);
jSplitPane1.setDividerLocation(100);
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == 201)
System.exit(0);
}
void jButton1_actionPerformed(ActionEvent e) {
// String soMethod = String.valueOf(String.valueOf((new StringBuffer("Method: ")).append(method).append(":\n")));
String url = URLTxt.getText();
String xml = jTextArea1.getText();
String str=thread.getText();
int cnt=1;
if(str==null||str.equals("")){
cnt=1;
thread.setText(cnt+"");
}else{
cnt=Integer.parseInt(str);
thread.setText(cnt+"");
}
String abc=num.getText();
int every=1;
if(abc==null||abc.equals("")){
every=1;
num.setText(every+"");
}else{
every=Integer.parseInt(abc);
num.setText(every+"");
}
String div=time.getText();
int divI=0;
if(div==null||div.equals("")){
divI=0;
time.setText(divI+"");
}else{
divI=Integer.parseInt(div);
time.setText(divI+"");
}
for(int i=0;i -1)
sb.append((char) ch);
rec_string = sb.toString();
rd.close();
urlconn.disconnect();
} catch (Exception e) {
log = String.valueOf(String.valueOf((new StringBuffer("请求错误:"))
.append(e.getMessage()).append(e.toString())));
writeLog(log);
}
return rec_string;
}
private String getMethod() {
if (mwindow == null)
return "GET";
else
return mwindow.method;
}
private void writeLog(String s) {
if (mwindow == null)
System.out.println(s);
else
mwindow.showMsg(String.valueOf(String.valueOf(s)).concat("\n"));
}
public static void main(String args[]) {
}
@Override
public void run() {
for(int i=0;i screenSize.height)
frameSize.height = screenSize.height;
if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
public static void main(String args[]) {
try {
//
UIManager.setLookAndFeel(UIManager
.getCrossPlatformLookAndFeelClassName());
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
// SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {
e.printStackTrace();
}
new HttpTest();
}
}
【发包工具】http多线程发包工具的更多相关文章
- Java 并发包中的高级同步工具
Java 并发包中的高级同步工具 Java 中的并发包指的是 java.util.concurrent(简称 JUC)包和其子包下的类和接口,它为 Java 的并发提供了各种功能支持,比如: 提供了线 ...
- Mysql多线程性能测试工具sysbench 安装、使用和测试
From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要: sysbench是一个开源的.模块化的.跨 ...
- 开源多线程性能测试工具-sysbench
导读 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL.本文主要演示Mysql测试 ...
- linux多线程下载工具mwget
linux多线程下载工具mwget 经常使用wget进行文件下载,然而wget的处理速度并不如人意.遇到一些国外的站点,经常慢得像蜗牛一般.然而为了解决这个问题,便有了mwget:m表示multi多线 ...
- CentOS6.4 安装aria2多线程下载工具
aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他 ...
- MySQL多线程备份工具:mydumper
MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper ...
- Linux下多线程下载工具myget
[root@superdba ~]# mytgetMytget 0.0.99: A download accelerator for GNU/LinuxUsage: mytget [options]. ...
- Linux 下的多线程下载工具 Axel
Axel 是 Linux 平台下的一款 HTTP/FTP 的高速下载工具,支持多线程以及断点续传,对于一些有速度限制的服务器上下载东西时,Axel 的速度就明显比 wget 要快一些 还有另一个基于 ...
- Java并发多线程 - 并发工具类JUC
安全共享对象策略 1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 2.共享只读 : 一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问, 但是任何线程都 ...
随机推荐
- linux输入子系统
linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler).输入子系统核心层(InputCore)和输入子系统设备驱 ...
- strcpy和memcpy的区别(转)
转自:http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.html strcpy和memcpy都是标准C库函数,它们有下面的特点.st ...
- 神奇的bug,退出时自动更新时间
遇到一个神奇的bug,用户退出时,上次登录时间会变成退出时的时间. 于是开始跟踪,发现Laravel在退出时,会做一次脏检查,这时会更新rember_token,这时就会有update操作如下. 而粗 ...
- Windows系统32位、64位DLL文件的存放位置
查资料时无意中发现,Windows系统存放DLL的文件路径似乎有点蹊跷: 32位的DLL存放在C:\Windows\SysWOW64,而64位的DLL存放在C:\Windows\System32.即使 ...
- Python 创建线程的方法
使用的是 threading 模块 代码如下: 1 #!/usr/bin/python3 2 3 import threading 4 import time 5 6 exitFlag = 0 7 / ...
- python多线程同步机制Semaphore
#!/usr/bin/env python # -*- coding: utf-8 -*- """ Python 线程同步机制:Semaphore "" ...
- Java finally语句是在try或catch的retrurn之前还是之后执行
若try或catch中没有return语句,则按正常执行流,从上到下,finally里的所有修改都生效. 这里讨论的是try或catch里有return或throw语句的情形,此情形比较让人迷惑. 总 ...
- 解决DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE(或META-INF/DEPENDENCIES)
导入eclipse项目时报 Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> ...
- 攻城狮送女友的CSS3生日蛋糕
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm 代码如下: <!DOCTYPE html> <html> <head&g ...
- 如何通过使用窗体身份验证和 Visual C#.NET 对 Active Directory 验证身份
本分步指南演示如何在 ASP.NET 应用程序如何使用窗体身份验证允许用户使用轻型目录访问协议 (LDAP),对 Active Directory 进行验证.经过身份验证的用户重定向之后,可以使用Ap ...