0 0

模拟http请求,获取网页所有资源的加载时延5

以下是google浏览器检测某一个网页所有资源的加载时延信息,我现在想通过java程序,模拟http请求某一个页面,来获取这些资源加载时延,怎么做,有解决方案最好,提出思路或实现手段也可!
2012年7月09日 17:21

4个答案 按时间排序 按投票排序

0 0

你好,请问你的这个问题是怎么解决的呢?

2014年7月05日 16:36
0 0

public static void testPost() throws IOException
{
/**
* 首先要和URL下的URLConnection对话。 URLConnection可以很容易的从URL得到。比如: // Using java.net.URL and //java.net.URLConnection
* 
* 使用页面发送请求的正常流程:在页面http://211.64.120.6 中输入用户名和密码,然后按登录,
* 跳转到页面http://211.64.120.6/eol/homepage/common/opencourse/login.jsp进行验证 验证的的结果返回到另一个页面
* 
* 使用java程序发送请求的流程:使用URLConnection向http://211.64.120.6/eol/homepage/common/opencourse/login.jsp发送请求 并传递两个参数:用户名和密码 然后用程序获取验证结果
*/
URL url = new URL("http://211.64.120.6/eol/homepage/common/opencourse/login.jsp");
URLConnection connection = url.openConnection();
/**
* 然后把连接设为输出模式。URLConnection通常作为输入来使用,比如下载一个Web页。 通过把URLConnection设为输出,可以把数据向你个Web页传送。下面是如何做:
*/
connection.setRequestProperty("accept", "text/html");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; rv:2.0b11) Gecko/20100101 Firefox/4.0b11");
connection.setDoOutput(true);
connection.setDoInput(true);
/**
*为了得到OutputStream,简单起见,把它约束在Writer并且放入POST信息中,例如: ...
*/
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "8859_1");
String name = "060610106";
String password = getPassword();
out.write("IPT_LOGINUSERNAME=" + name + "&IPT_LOGINPASSWORD=" + password); // 向页面传递数据。post的关键所在!
// remember to clean up
out.flush();
out.close();
/**
* 这样就可以发送一个看起来象这样的POST: POST /jobsearch/jobsearch.cgi HTTP 1.0 ACCEPT: text/plain Content-type:
* application/x-www-form-urlencoded Content-length: 99 username=bob password=someword
*/
// 一旦发送成功,用以下方法就可以得到服务器的回应:
String sCurrentLine;
String sTotalString;
StringBuffer bufferString=new StringBuffer();
InputStream  l_urlStream= connection.getInputStream();
BufferedReader buffer=new BufferedReader(new InputStreamReader(l_urlStream));
while ((sCurrentLine=buffer.readLine())!=null)
{
sTotalString=buffer.readLine();
bufferString.append(sTotalString);
}
l_urlStream.close();
}
 
public static void main(String[] args) throws IOException
{
while (true)
{
testPost();
}
}

这样还需要解析html
如果html中有什么动态加载的,比较难控制

2012年7月10日 10:46
0 0

java提供了HttpConnection类,你可以使用它抓取某个http url对应的资源,假设你请求了当前页面,得到了表示当前静态页面的文本,之而后你可以解析html文本中的各个标签属性,找到里面包含的资源url,然后再去通过HttpConnection类加载,你需要的诸如 大小 文件类型, 状态码都可以获得

解析html文本我推荐使用这个库 jsoup

2012年7月10日 00:27
0 0

我的想法,你看看,首先访问一下该页面,用html parser解析返回响应html中所有的资源url,装载在一个集合类中,然后再逐一的请求该资源url,并记录时间,then over;

2012年7月09日 17:44

相关推荐

    vb做的模拟HTTP SERVER ,可以人为输入时延

    - HTTP(超文本传输协议)是一种应用层协议,用于从Web服务器向客户端发送数据,如网页、图片等资源。 - HTTP工作基于请求-响应模型:客户端(浏览器)发送一个HTTP请求到服务器,服务器处理请求后返回一个HTTP...

    XOIC 网站性能测试工具

    1. **网站优化**:XOIC可以帮助网站开发者和运维人员识别网页加载慢的原因,优化资源加载策略,提升用户体验。 2. **服务器压力测试**:在新服务上线前,可以模拟真实用户负载,评估服务器的极限承载能力,确保服务...

    APP弱网络测试

    - **round-trip latency**:首个请求的时延,单位为毫秒。 - **MTU**:最大传输单元,用于模拟TCP层的分包情况。 - **reliability**:连接的可靠性,用于模拟网络不稳定。 - **stability**:连接稳定性,影响...

    计网复习20191

    而在P2P网络中,所有节点既是服务请求者也是服务提供者。 交换方式是网络通信的关键,主要有电路交换和分组交换两种。电路交换在通信前先建立一条专用路径,适合连续大量数据传输,如电话系统。而分组交换则将数据...

    web-在线网络测速 最终版

    "zxwsd"可能是一个缩写或随机命名的文件,通常在压缩包中包含的是实现该Web测速应用的所有必要文件,如HTML文件(网页结构)、CSS文件(样式设计)、JavaScript文件(交互逻辑)、图片资源、图标以及其他可能的...

    计算机体系结构期末考试试题及答案.doc

    - **请求字优先调块**: 一种优化数据访问的方法,优先获取当前所需数据,后续数据随后加载。 - **单一系统映像**: 描述机群系统为用户提供一致视图的概念。 - **阵列处理机**: 一种并行处理机,通过并行执行相同指令...

    现代通信系统-中文翻译版-proakis-matlab源码

    总的来说,这个压缩包提供的MATLAB源码是学习现代通信系统的宝贵资源,它将理论与实践紧密结合,有助于读者全面掌握通信系统的基本原理和应用技术。无论是初学者还是专业人士,都可以从中受益,提升自己的专业技能。

    中国移动山东公司WLAN热点测试验收规范(20120216)

    - **测试方法**:模拟用户访问多个常用网站,记录访问成功率及首页加载时间。 ##### 1.3.2 下载速率和在线视频测试 - **测试目的**:验证热点提供的下载速度及在线视频播放质量。 - **测试方法**:模拟用户下载大...

    计算机体系结构期末考试试题与答案.doc

    2. 请求字优先调块:CPU请求的数据先被发送,剩余部分随后加载,以减少等待时间。 3. 单一系统映像:在多处理器系统中,提供统一视图,使用户感觉只有一个系统。 4. 阵列处理机:通过大量相同处理单元并行处理数据,...

    EDGE外场测试南京地区测试方案.pdf

    测试将模拟高并发场景,如高峰期的网页浏览、数据下载等,以检查网络是否能应对大流量并保持服务稳定性。 5. **业务质量测试方案**:这一部分详细列出了多种具体业务的测试,包括: - **MMS测试**:评估多媒体消息...

    matlab的欧拉方法代码-Choi2019_ConnectomeSynchrony:Choi2019_Connectome同步

    模拟是根据实际的距离相关的时延和固有频率进行的。 使用生成的阶段时间序列,代码还可以计算网络的阶跃参数。 运行模拟 main_run.m是主要图形生成代码,用于从adjmat_whole.mat和adjmat_ipsi.mat加载连接矩阵和距离...

    计算机&软件工程&人工智能研究生复试资料整理

    - **Controller**:接收请求并调用模型和视图完成用户请求。 ##### 计算机网络 1. **TCP如何解决丢包和乱序?** - 使用序列号和确认应答机制。 - 使用重传机制解决丢包。 2. **cookie和session的区别**: - **...

    SJ信令SH数据T_36

    他们可以使用MATLAB来加载和处理数据,进行统计分析、绘图,甚至建立复杂的模型来模拟和预测网络行为。同时,这也可能涉及到数据预处理、特征提取和结果解释等多个步骤,都需要扎实的编程和信号处理知识。 总之,...

    新版Android开发教程.rar

    支持 HTTP 、 WAP Push 和 xHTML ;支持 POP 、 IMAP 、 SMTP ,以及 AOL 和 GMAIL 电子邮件服务;支持 AIM 、 MSN 、雅虎通和 GTALK ;与谷歌日历同步;与 Android Market 联机;支持谷歌 “ 街景 ” 服务;包装盒...

Global site tag (gtag.js) - Google Analytics