【发包工具】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. 详解Android开发中Activity的四种launchMode

    Activity栈主要用于管理Activity的切换.当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载. Activity一共有以下四种launchMod ...

  2. C#学习笔记(15)——c#接口

    说明(2017-7-17 21:57:26): 原文:http://www.cnblogs.com/jiajiayuan/archive/2011/09/16/2178462.html 本文意在巩固基 ...

  3. TP v5中Url Compat模式

    compatible 对于配置pathinfo的支持,在Nginx作服务器.无数种系统要同时运行的环境,实在是一项很累赘的事情,而又不想很low的多个参数(像m.c.a)构造路由参数,我需要那种不必强 ...

  4. 如何修改被hosts.deny禁止访问的IP

    自己的密码忘记了,重试了很多次被加入了黑名单. 如果仅仅清空 /etc/hosts.deny 文件内容,你会发现过一会自己的IP又进入里面了. 其实系统后台会定期自动扫描一些文件,然后将这些异常的IP ...

  5. 根据map键值对,生成update与select语句,单条执行语句

    方法 constructUpdateSQL private static String constructUpdateSQL(String tableName, List<Map<Stri ...

  6. netable 禁用拖动

    nestable在点击的时候,有一个拖动的状态被触发,会导致你给nestable上加的链接都会无效. 只要在最外层的li里加入一个class为:dd-nodrag,就不会被触发了.然后你在子菜单中就可 ...

  7. PCL中分割_欧式分割(1)

    基于欧式距离的分割和基于区域生长的分割本质上都是用区分邻里关系远近来完成的.由于点云数据提供了更高维度的数据,故有很多信息可以提取获得.欧几里得算法使用邻居之间距离作为判定标准,而区域生长算法则利用了 ...

  8. php 扫描 下载 apk

    $file = 'C:\WebSiteDirectory\CarparkWeixinBackend\Dplus.apk'; if (file_exists($file)) { header('Cont ...

  9. 【转】两款 Web 前端性能测试工具

    前段时间接手了一个 web 前端性能优化的任务,一时间不知道从什么地方入手,查了不少资料,发现其实还是蛮简单的,简单来说说. 一.前端性能测试是什么? 前端性能测试对象主要包括: HTML.CSS.J ...

  10. 自然语言交流系统 phxnet团队 创新实训 项目博客 (九)

    项目技术总结: VoiceToText的具体使用方法: 语音转文本部分是调用的科大讯飞的在线语音,它的激发方式是按键,通过按钮触发开启安卓设备的录音,此部分需要在源码中写入关于安卓权限的要求,来调用安 ...