- 浏览: 191617 次
- 性别:
- 来自: 深圳
最新评论
-
shis_y:
那是你的localhost或者web服务器的80端口被占用或者 ...
通过虚拟地址解决fckeditor错误的加载/fckeditor/fckstyles.xml -
forcer521:
com.gemt.dataswap.util.Constant ...
使用DES算法进行加密和解密 -
ngn9999:
dTree确实不错,这是我的使用经验: http://www. ...
javascript树型菜单(Dtree和Xtree) -
yueliangwolf:
这个dhtmlxtree.js里面有enableSmartXM ...
使用xml或者json方式生成dhtmlxtree -
yanMouse:
谢谢,能否有个联系方式,我现在也在看这方面的东西
dhtmlxtree的一个实用demo
在几天程序突然报出了数据库连接被管理员销毁的情况! 一时之间也毫无头绪, 甚至怀疑我们的程序能否通过压力测试, 所以就使用了HttpClient整了一段测试跑了来测试一下, 最后虽然找到了问题是因为ArcGis占有了很多连接没有释放导致的, 呵呵, 既然写了, 还是拿出来试试:
package com.gomt.httpclient; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.text.BadLocationException; import javax.swing.text.html.HTMLDocument; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; public class AutoTest { static final String LOGON_SITE = "192.168.0.93"; static final int LOGON_PORT = 7001; public AutoTest() { } /** * @param args */ public static void main(String[] args) { HttpClientFrame f = new HttpClientFrame(); f.setTitle("HttpClient测试"); f.setSize(700, 500); f.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); f.setVisible(true); } public static class HttpClientFrame extends JFrame { private static final long serialVersionUID = 3348783285573305436L; private JComboBox cmbURL; private JComboBox runcount; private JTextField cmbPort; private JTextArea taTextResponse; private JEditorPane htmlPane; private HttpClient client; String[] userArr = new String[]{"admin", "tianyy", "jiangzy", "caoxd", "changam", "chejh", "chench", "chengh", "chenhr", "guzm", "hesb", "hep", "laijw"}; String[] passArr = new String[]{"admin", "tian", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"}; long begin = 0; public HttpClientFrame() { begin = System.currentTimeMillis(); System.out.println("start : " + begin); //HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager()); //client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT, "http"); client.getHttpConnectionManager().getParams().setConnectionTimeout(30000); JPanel panInput = new JPanel(new FlowLayout()); String[] aURLs = { "192.168.0.9", "192.168.0.10", "192.168.0.93"//, //"http://www.anybrowser.org/", //"http://jakarta.apache.org/", //"http://www.w3.org/" }; final JButton btnGET = new JButton("测试"); btnGET.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { String url = (String) cmbURL.getSelectedItem(); if (url != null && url.length() > 0) { //loadPage(url); int runtimes = 1; int port = 80; try { runtimes = Integer.parseInt((String)runcount.getSelectedItem()); } catch(Exception eee) { runtimes = 1; } try { port = Integer.parseInt(cmbPort.getText()); } catch(Exception ee) { port = 80; } java.util.Random rm = new java.util.Random(); for (int i = 0; i < runtimes; i++) { int rmi = rm.nextInt(); int arryp = Math.abs(rmi % 13); System.out.println("arryp = " + arryp); loadPage(url, i+1, begin, userArr[arryp], passArr[arryp], port); // PostMethod post = new PostMethod("http://" + url + ":" + LOGON_PORT + "/szsf/loginaction.action"); // NameValuePair username = new NameValuePair("user", userArr[arryp]); // NameValuePair password = new NameValuePair("pwd", passArr[arryp]); // NameValuePair method = new NameValuePair("method", "b"); // post.setRequestBody(new NameValuePair[]{username, password, method}); //get.setFollowRedirects(true); } } } } ); cmbURL = new JComboBox(aURLs); cmbURL.setToolTipText("输入一个地址!"); cmbURL.setEditable(true); cmbURL.setSelectedIndex(0); cmbPort = new JTextField(); cmbPort.setToolTipText("请输入端口号!"); cmbPort.setEditable(true); cmbPort.setText("7001"); JLabel lblURL = new JLabel("地址:"); runcount = new JComboBox(new String[]{"1","10","100","1000"}); runcount.setToolTipText("运行次数"); runcount.setEditable(true); runcount.setSelectedIndex(0); panInput.add(lblURL); panInput.add(cmbURL); panInput.add(cmbPort); panInput.add(btnGET); panInput.add(runcount); panInput.add(new JLabel("次")); taTextResponse = new JTextArea(); taTextResponse.setEditable(false); taTextResponse.setCaretPosition(0); htmlPane = new JEditorPane(); htmlPane.setContentType("text/html;charset=UTF-8"); htmlPane.setEditable(false); JSplitPane splitResponsePane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(taTextResponse), new JScrollPane(htmlPane) ); splitResponsePane.setOneTouchExpandable(false); splitResponsePane.setDividerLocation(350); // it would be better to set resizeWeight, but this method does // not exist in JRE 1.2.2 // splitResponsePane.setResizeWeight(0.5); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(panInput, BorderLayout.NORTH); this.getContentPane().add(splitResponsePane, BorderLayout.CENTER); } /** * Sets the HTML content to be displayed. * * @param content an HTML document * @throws UnsupportedEncodingException */ private void setDocumentContent(String content, InputStream in) throws UnsupportedEncodingException { HTMLDocument doc = new HTMLDocument(); // try { // doc.remove(0, doc.getLength()); // } catch (BadLocationException e) { // e.printStackTrace(); // } doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE); taTextResponse.setText(new String(content.getBytes("GBK"), "UTF-8")); taTextResponse.setCaretPosition(0); try { htmlPane.read(new java.io.ByteArrayInputStream(taTextResponse.getText().getBytes()), doc); } catch (IOException e) { e.printStackTrace(); } if(doc.getLength() != 0) { htmlPane.setDocument(doc); htmlPane.setCaretPosition(0); } taTextResponse.requestFocus(); } /** * Loads the page at the given URL from a separate thread. * @param url */ private void loadPage(final String url, final int id, final long begin, final String usernames, final String passwords, final int port) { // create a new thread to load the URL from new Thread() { public void run() { PostMethod post = new PostMethod("http://" + url + ":" + port + "/szsf/loginaction.action"); NameValuePair username = new NameValuePair("user", usernames); NameValuePair password = new NameValuePair("pwd", passwords); NameValuePair method = new NameValuePair("method", "b"); post.setRequestBody(new NameValuePair[]{username, password, method}); try { int iGetResultCode = client.executeMethod(post); final InputStream in = post.getResponseBodyAsStream(); java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream(5120); byte[] b = new byte[5120]; int len = 0; while((len =in.read(b)) > -1) { byteout.write(b, 0, len); } final String strGetResponseBody = new String(byteout.toByteArray());//post.getResponseBodyAsString(); System.out.println("返回状态为:" + iGetResultCode); if (strGetResponseBody != null) { // set the HTML on the UI thread SwingUtilities.invokeLater( new Runnable() { public void run() { try { setDocumentContent(strGetResponseBody, in); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } ); } } catch (Exception ex) { ex.printStackTrace(); } finally { post.releaseConnection(); } } }.start(); } } /** * A thread that performs a GET. */ // static class PostThread extends Thread { // // private HttpClient httpClient; // private PostMethod method; // private int id; // private long begin; // // public PostThread(HttpClient httpClient, PostMethod method, int id, long begin) { // this.httpClient = httpClient; // this.method = method; // this.id = id; // this.begin = begin; // // } // // /** // * Executes the GetMethod and prints some satus information. // */ // public void run() { // // try { // // System.out.println(id + " - about to get something from " + method.getURI()); // // execute the method // httpClient.executeMethod(method); // // //System.out.println(id + " - get executed"); // // get the response body as an array of bytes // ///byte[] bytes = method.getResponseBody(); // // //System.out.println(id + " - " + bytes.length + " bytes read"); // final String resString = method.getResponseBodyAsString(); // if (resString != null) { // // set the HTML on the UI thread // SwingUtilities.invokeLater( // new Runnable() { // public void run() { // setDocumentContent(resString); // } // } // ); // } // //System.out.println("返回字串为: " + resString); // // } catch (Exception e) { // System.out.println(id + " - error: " + e); // } finally { // // always release the connection after we're done // method.releaseConnection(); // //System.out.println(id + " - connection released"); // System.out.println(id + " begin: " + begin + " end : "+ System.currentTimeMillis() + " cost : " + (System.currentTimeMillis() - begin)/1000.0); // } // } // // } }
发表评论
-
kdb+/q
2008-11-28 20:13 1907因为一个项目接触了kdb+/q, kdb+/q的执行速度应该 ... -
seam随笔
2008-09-28 20:33 1208前段时间,因为客户的一个项目接触了seam,客户那边在 ... -
richfaces换肤
2008-08-27 23:18 0http://leonardinius.blogspot.co ... -
jfree chart...
2008-08-17 11:38 0see attachment. -
crystal report
2008-08-04 21:57 0crystal report http://oceang-y. ... -
js code example
2008-07-01 16:25 0<html> <body> <s ... -
dhtmlgoodies网站上的一些js,也许在工作中用得到
2008-06-23 16:28 1536到http://www.dhtmlgoodies.com ... -
Hibernate的一个例子
2008-05-31 23:32 1092通过hibernate tools的反向工程从数据库产生ent ... -
使用xml或者json方式生成dhtmlxtree
2008-05-14 18:01 68181. dao private static Paramete ... -
在cxf基础上整的一个框架
2008-04-24 08:48 1102使用cxf作为webservice的服务器,以spring b ... -
S60签名
2008-04-16 17:14 1516前段时间写了一个程序,放到S60第三版的手机系统上面老是报权限 ... -
socket消息超时重发的设想
2008-04-08 17:00 4061我们经常遇到的一个问题就是:发送一条消息,若在T秒内没有 ... -
io,nio和操作系统命令性能比较
2008-03-31 20:50 2267package org.clarance; import j ... -
要开始做一个网络的项目了
2008-03-27 22:38 1319一个在线环境监测的项目, 监控中心用java编写,接受现 ... -
使用jQuery解决portal登陆慢的问题
2007-12-19 16:58 2270因为portal中的好几块地方(portlet)取数据比较慢, ... -
使用javascript遍历XML文件并显示
2007-12-10 17:11 6682以下代码在IE和Firefox上测试通过: <html& ... -
JSON技术实战
2007-12-07 09:23 11051JSON作为一种信息的载体 ... -
判断日期是否有效的正则表达式
2007-09-10 17:59 1244function isValidDate(dateStr, f ... -
取oracle的error code
2007-08-30 15:39 2830有时候需要知道oracle的error code的具体含义, ... -
JFreeChart生成图片并显示
2007-08-28 09:51 3019源代码在附件中, 部署到sevlet容器中, 通过URL访问s ...
相关推荐
在IT行业中,网络通信是不可或缺的一部分,而...理解HttpClient的工作原理和使用方法,对于进行Web服务的测试和集成具有重要意义。在具体应用时,还需要结合实际的服务器接口文档和项目需求,进行适当的调整和优化。
Selenium是一个广泛使用的Web应用程序自动化测试工具,它支持多种浏览器,并且有多种语言绑定,如Java、Python等。Selenium WebDriver是其核心部分,通过模拟用户行为与浏览器进行交互,如点击按钮、填写表单、选择...
在使用HttpClient进行web请求时,首先需要创建一个HttpClient实例。这个实例是执行HTTP操作的基础,可以设置各种连接参数,如超时时间、重试策略等。然后,根据需求选择合适的HttpMethod子类,如HttpGet、HttpPost等...
本节将详细介绍如何使用HttpClient 4.x版本来获取HTTP响应的状态码,并对其进行验证。这对于开发人员来说是一个非常实用的功能,可以帮助快速定位请求是否成功、服务器是否正确处理了请求等问题。 **1.2 从...
在Web应用开发过程中,常常需要模拟用户的登录行为及提交表单数据,例如自动化测试、爬虫开发等场景。本示例提供了一个基于Apache HttpClient的解决方案。 #### 示例程序解析 ##### 类结构 示例程序主要由以下几个...
HttpClient 在多个领域都有广泛的应用,如 Web 服务调用、数据抓取、API 接口测试等。例如,开发人员可以使用 HttpClient 进行 RESTful API 的调用,获取 JSON 数据,或者进行自动化测试中的 HTTP 请求模拟。 6. *...
在本文中,我们将深入探讨HttpClient的核心概念、使用方法以及如何通过`httpclient.jar`进行实战应用。 首先,HttpClient的主要组件包括: 1. **HttpClient实例**:这是整个HTTP通信的核心,负责管理连接、请求和...
HttpClient广泛应用于Web服务调用、爬虫程序、数据同步、自动化测试等领域。例如,在Web服务API调用中,HttpClient可以方便地构造和发送GET、POST请求,获取并解析响应内容;在爬虫程序中,HttpClient可以处理登录、...
在Java应用程序中,HttpClient常用于Web服务的调用、数据抓取或自动化测试等场景。 HttpClient的核心特性包括: 1. **请求构造与执行**:HttpClient允许开发者精确控制HTTP请求的每一个细节,如方法类型(GET、...
Java HttpClient 是一个强大的HTTP客户端库,它允许Java开发者在应用程序中发送HTTP请求并接收响应,广泛应用于Web服务的调用、API接口测试以及自动化脚本等场景。在Java项目中,使用HttpClient可以实现与Web服务器...
本主题将深入探讨如何针对Web API进行单元测试,特别是结合IOC(Inversion of Control)容器如Autofac和UnityContainer,以及使用HttpClient进行远程调用。 首先,让我们理解什么是单元测试。单元测试是一种编程...
它广泛应用于需要与Web服务器进行交互的应用程序中,如数据抓取、网页自动化测试等场景。 二、核心概念 1. HttpClient:HttpClient的核心类,负责发起HTTP请求和接收响应。 2. HttpRequest:表示一个HTTP请求,包含...
这个库为开发者提供了丰富的功能,使得与Web服务器进行交互变得更加简单和高效。在提供的压缩包中,包含以下三个关键的jar文件: 1. **commons-codec-1.4.jar**: 这个库是Apache Commons Codec,它提供了各种编码和...
HttpClient 4.5.6 版本对之前的版本进行了优化,修复了一些已知问题,提升了整体的稳定性和兼容性。 二、HttpClient 4.5.6 的新特性 1. **连接管理**:HttpClient 4.5.6 引入了更先进的连接管理策略,允许用户...
- 自动化测试:模拟用户行为,测试 Web 应用功能。 总结,HttpClient 4.0 作为 Java 中的网络通信库,其强大的功能和灵活性使得它在各种项目中都得到了广泛的应用。理解和熟练使用 HttpClient 4.0,对于提升 Java ...
HttpClient是Apache基金会开发的...总的来说,HttpClient是一个强大且灵活的HTTP客户端工具,对于任何需要与Web服务器进行交互的Java应用来说都是不可或缺的。正确理解和使用HttpClient,可以提高程序的效率和可靠性。
此库特别适用于需要与Web服务器进行复杂交互的应用程序,如Web服务客户端、数据抓取或自动化测试工具。 核心特性: 1. **多协议支持**:HttpClient支持HTTP/1.0和HTTP/1.1协议,同时提供了对HTTPS的安全连接支持。 ...
这是一个常见的应用场景,对于开发跨平台移动应用或者Web应用来说至关重要。 首先,让我们了解这三个技术的核心概念: 1. **Ionic**:是一个开源的HTML5移动应用框架,基于Angular和Web组件技术,用于构建原生感观...
HttpClient 4.4作为一个成熟的HTTP客户端库,广泛应用于各种Java应用程序,包括Web服务客户端、数据抓取、自动化测试等领域。其强大的功能和易用性,使得开发者能够高效地处理网络通信任务,而无需关注底层细节。...
HttpClient是Apache基金会开发的一个HTTP客户端API,用于在Java应用程序中执行HTTP请求。...通过理解和熟练掌握HttpClient的使用,可以提高我们的Web应用开发效率,同时增强系统的稳定性和可靠性。