【发包工具】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多线程发包工具的更多相关文章

  1. Java 并发包中的高级同步工具

    Java 并发包中的高级同步工具 Java 中的并发包指的是 java.util.concurrent(简称 JUC)包和其子包下的类和接口,它为 Java 的并发提供了各种功能支持,比如: 提供了线 ...

  2. Mysql多线程性能测试工具sysbench 安装、使用和测试

    From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要:      sysbench是一个开源的.模块化的.跨 ...

  3. 开源多线程性能测试工具-sysbench

    导读 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL.本文主要演示Mysql测试 ...

  4. linux多线程下载工具mwget

    linux多线程下载工具mwget 经常使用wget进行文件下载,然而wget的处理速度并不如人意.遇到一些国外的站点,经常慢得像蜗牛一般.然而为了解决这个问题,便有了mwget:m表示multi多线 ...

  5. CentOS6.4 安装aria2多线程下载工具

    aria2是一个Linux下的多线程下载工具,支持HTTP/HTTPS.FTP.BitTorrent.Metalink协议. 平时在linux上下载http上的东西常用如wget.curl命令,但是他 ...

  6. MySQL多线程备份工具:mydumper

    MySQL多线程备份工具:mydumper http://www.orczhou.com/index.php/2011/12/how-to-split-mysqldump-file/ Mydumper ...

  7. Linux下多线程下载工具myget

    [root@superdba ~]# mytgetMytget 0.0.99: A download accelerator for GNU/LinuxUsage: mytget [options]. ...

  8. Linux 下的多线程下载工具 Axel

    Axel 是 Linux 平台下的一款 HTTP/FTP 的高速下载工具,支持多线程以及断点续传,对于一些有速度限制的服务器上下载东西时,Axel 的速度就明显比 wget 要快一些 还有另一个基于 ...

  9. Java并发多线程 - 并发工具类JUC

    安全共享对象策略 1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 2.共享只读 : 一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问, 但是任何线程都 ...

随机推荐

  1. C++中虚函数的作用是什么?它应该怎么用呢?

    虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 下面是对C++的虚函数这玩意儿的理解. 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你 ...

  2. docker探索-docker安装运行tomcat(六)

    前言      本地已经搭建好了,tomcat容器,本来想自己写一篇,在开源中国一篇不错的教程,就转载过来了 本文转自:https://my.oschina.net/sunchp/blog/61652 ...

  3. mysql5.5编译安装过程(自己总结)

    一,安装过程 //创建mysql安装目录,创建数据存放目录,创建用户和用户组与赋予数据存放目录权限 mkdir -p /usr/local/mysql/ mkdir -p /data/mysql/ g ...

  4. [Linux基础环境/软件]Linux下安装mysql

    我是使用免安装的包mysql-5.5.28-linux2.6-x86_64.tar.gz(在http://dev.mysql.com/downloads/可以下载到最新的包)的.直接解压,然后配置,初 ...

  5. C语言 · 字符串的展开

     算法训练 字符串的展开   时间限制:1.0s   内存限制:256.0MB      在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d ...

  6. <低风险投资之路>读书笔记

    书在这里 低风险才能高收益 大的投资收益回撤,是长期高复合收益率的最大杀手 要赚钱先不赔钱 选择合理的投资组合与合理的仓位 盈利的关键不是你买了什么,而是你买了多少.这就是仓位管理的技巧,在确定性盈利 ...

  7. GODOT 3.0 开发进度汇报 #6

    经过了又一个月的开发工作,在此作进度报告.本月的工作可以划分为:完成Web导出工具开发.GDNative.以及新的粒子系统. Web Export Godot 现在有了一款实验性的导出工具,导出目标为 ...

  8. tomcat出现的PermGen Space问题<转>

    最近做项目碰到了让我纠结的问题,tomcat服务器运行一段时间,总是会自动报异常:java.lang.OutOfmemoryError: PermGen Space 的错误,导致项目无法正常运行. 出 ...

  9. Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)

    效果: 问题:可拖动进度条随进度条移动时,会致使音乐卡顿(待解决) xml <?xml version="1.0" encoding="utf-8"?&g ...

  10. Java 源码赏析 - java.lang - Void

    被人鄙视了,于是也来读读源码... package java.lang; /** * The Void class is an uninstantiable placeholder class to ...