简单的利用jdk 的socket和io流,模拟浏览器请求和响应
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.Date; public class Server { public static void main(String[] args) { ServerSocket serverSocket = null; Socket client = null; try { serverSocket = new ServerSocket(9999); System.out.println("服务器初始化完毕,初始化注册端口是"+9999); while(true){ client = serverSocket.accept(); InputStream in = client.getInputStream(); byte[] buff = new byte[1024]; int len = in.read(buff); if(len>0){ String msg = new String(buff,0,len); System.out.println(msg); OutputStream os = client.getOutputStream(); SimpleDateFormat formt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); StringBuffer sb = new StringBuffer(); sb.append("HTTP/1.1 200 OK\n"); sb.append("Content-Type: text/html;charset=UTF-8\n"); sb.append("\r\n"); String html = "<html><head><title>各位朋友!</title></head><body>当前时间:"+ "<font size='14' color='blue'>"+ formt.format(new Date())+ "</font>"+ "<br/>服务器回复:<font size='14' color='blue'></font></body></html>"; sb.append(html); os.write(sb.toString().getBytes()); os.flush(); } } } catch (IOException e) { e.printStackTrace(); } } }
main方法跑起来后, 浏览器输入 http://localhost:9999/,控制台显示:第二行开始打印的就是http请求内容
浏览器接到响应显示:
相关推荐
Java作为一种多用途的编程语言,提供了丰富的库来帮助开发者模拟HTTP请求,使得我们可以在程序中实现与服务器的交互,比如发送GET、POST请求,获取网页数据,甚至进行文件上传等操作。本教程将详细讲解如何使用Java...
标题中的“利用soapui和jdk API访问webservice”是指通过两种不同的方式来调用Web服务:一种是使用图形化工具SoapUI,另一种是利用Java Development Kit(JDK)中的API进行编程式调用。让我们详细了解一下这两种方法...
在实际测试中,JMeter提供了多种测试元素,如线程组(模拟并发用户)、采样器(模拟用户请求)、监听器(收集测试结果)、断言(验证响应数据)等。测试计划可以通过录制回放、脚本编写或者导入导出来实现。录制回放...
例如,为了测试一个Web应用,我们可以设置HTTP请求采样器模拟用户浏览网页,再配合Cookie Manager处理会话,使用查看结果树监听器观察服务器的响应。 JMeter还支持脚本录制,可以方便地将实际用户操作转化为测试...
5. **HTTP客户端API(JEP 110)**:JDK内置了一个新的HTTP客户端API,位于`java.net.http`包下,提供了一种标准、高效的方式来执行HTTP/2和HTTP/1.1请求。 6. **并行Full GC for G1(JEP 281)**:引入了并行Full ...
- **测试**:在单元测试中,可以利用JSON Lib快速创建JSON对象,用于模拟请求或响应。 ### 主要功能 1. **序列化**:将Java对象转换为JSON字符串。例如,一个Java对象可以被转换成JSON格式的文本,以便在网络上传输...
SNMP(简单网络管理协议)是一种广泛用于网络设备管理的标准协议,它允许管理员远程监控和配置网络设备。本文将深入探讨如何使用SNMP4J-Agent工具在个人计算机上模拟SNMP服务,以便进行测试和开发。 SNMP4J-Agent是...
JMeter是一款强大的性能测试工具,广泛应用于软件开发和运维领域,用于模拟大量用户并发访问服务,以此来测试应用的性能和稳定性。在这个压缩包中,包含了JMeter 5.3版本和JDK 8u261的安装程序,这使得用户无需手动...
本文将深入探讨这两个工具的结合使用,以及如何利用它们来创建一个强大的性能测试环境。 首先,我们来了解JMeter。Apache JMeter是一款由Apache软件基金会开发的开放源代码性能测试工具。它主要用来测试Web应用程序...
通过这个 "Jmeter+Jdk1.8.zip" 压缩包,用户可以快速地搭建起一个用于性能测试的环境,利用 JMeter 对 Web 应用进行压力测试,同时借助 JDK 1.8 的新特性编写高效的测试脚本。这个组合对于软件开发和运维团队来说,...
通常,这会涉及到创建一个包含中文参数的测试计划,运行并检查响应结果,看中文字符是否显示正常。 在性能测试中,正确处理各种字符集是至关重要的,尤其是在全球化的环境中。因此,理解字符编码机制以及如何在测试...
在Java 11及更高版本中,HttpClient是一个重要的新特性,它提供了非阻塞的HTTP请求执行能力,并可以通过`CompletableFuture`处理响应,这使得基于异步编程的HTTP客户端操作变得更加便捷。本教程将深入探讨如何使用...
在网络爬虫开发中,通过模拟浏览器行为去获取网络数据是一种常见的方式。而在这个过程中,我还需要监控网络请求、响应状态码、资源类型、响应时间等数据。本篇博文将介绍如何使用BrowserMobProxy结合Selenium进行...
使用JMeter,你可以创建测试计划,定义线程组(模拟用户)、采样器(请求类型)、断言(验证响应)、监听器(收集和展示结果)。通过组合这些元素,可以构建出复杂的测试场景,实现对各种应用服务的全面性能评估。 ...
3. 同时,需要检查并修改`web.xml`文件中的编码设置,确保请求和响应编码都是UTF-8,例如: ```xml <filter-name>CharacterEncodingFilter <filter-class>your.filter.CharacterEncodingFilter <param-name>...
4. **创建测试计划**: JMeter的工作台界面允许你创建测试计划,通过添加线程组(模拟并发用户)、采样器(定义请求类型)、监听器(收集并展示测试结果)等组件,构建出复杂的测试场景。 5. **执行测试**: 设置好...
在JMeter中,可以创建HTTP采样器来模拟用户登录请求,测试服务器处理登录请求的能力和响应时间。同时,如果Nmon也在监控登录过程,我们可以观察到CPU、内存和网络在用户登录高峰期的使用情况,以评估系统是否能应对...
在进行压力测试时,可以创建线程组模拟多个并发用户,设置采样器来发送HTTP/2.0请求,并通过监听器收集和分析结果,如聚合报告、响应时间图表等,以评估服务器性能。 总之,"jmeter4-http2.0-jdk8"的组合意味着在...
JDK HTTP服务器是Java标准库中提供的一款轻量级HTTP服务器,适用于开发、测试和简单的生产环境。通过使用虚拟线程,我们可以期望它在处理并发请求时展现出更高的吞吐量和更低的延迟。基准测试的目的就是衡量这些改进...
JMeter能够模拟大量并发用户,生成详细的性能报告,包括响应时间、吞吐量、错误率等关键指标,从而评估系统的稳定性和可扩展性。 2. **JDK(Java Development Kit)**: JDK是Java编程语言的开发环境,包含了Java...