`

利用jdk简单的模拟请求响应(一)

 
阅读更多

简单的利用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请求内容



 浏览器接到响应显示:



 

 

  • 大小: 42.1 KB
  • 大小: 16.2 KB
分享到:
评论

相关推荐

    SelemiumCrawlerFk爬爬 环境:idea + jdk11 + maven + 驱动 + 浏览器

    在网络爬虫开发中,通过模拟浏览器行为去获取网络数据是一种常见的方式。而在这个过程中,我还需要监控网络请求、响应状态码、资源类型、响应时间等数据。本篇博文将介绍如何使用BrowserMobProxy结合Selenium进行...

    CDSpace 测试工具

    CDSpace是基于Apache Http Client和Sun Http Server两个库,以JavaFX为GUI框架开发的一款HTTP接口测试工具,主要功能分为两部分:1、模拟HttpClient发送自定义请求给服务端,接受响应并将响应的消息体和头域显示在...

    jmeter-parallel-0.9.jar

    Jmeter模拟浏览器访问时,http请求为串行,未能有效模拟浏览器多线程同时请求Web服务器的情况,测试响应时间较实际长。 解决: 使用并发控制器,把网页浏览器并发请求的页面配置于同一个并发控制器之内。 安装配置...

    JMeter操作手册大全.docx

    请求响应时间 从客户端发出请求到得到响应的整个时间 一般包括网络响应时间+server的响应时间。 用户接受准则: 例如2-5-10原则,即按照正常用户体验,如果用户能够在2秒内得到响应,会感觉速度很快,如果2-5秒...

    淘宝登录java源码-ghost-login:幽灵登录

    HTTP请求以及响应 模拟自动登录 验证码识别 加密解密 Done (已经实现) (待实现) (已经实现) (还有点问题) (还有点问题) (已经实现) (待实现) (待实现) (已经实现) (还有点问题) ##Todolist 0. 重构代码,增加可扩展...

    天气:天气

    它公开了GlobalWeather Web服务的功能(实际WSDL位于 ,但是该服务在开发时不可用,因此使用本地node.js应用程序模拟响应)。 该API从用户那里获取请求参数,并调用GlobalWeather Web服务进行查询。 它组织返回的...

    poc-bank-api-java:JAVA:hot_beverage:中银行ap​​i的POC

    将来交易的帐户ID必须包含在创建请求响应中; 摘要应返回所有帐户的动向(转账,存款和取款); 无法向自己进行转帐(源帐户不能与目标帐户相同);在本地运行API前提Java JDK 玛文码头工人Docker-撰写PostgreSQL...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

    GCPMockServer

    模拟服务器它曾经用来模拟应用程序服务。安装克隆存储库将应用程序导入到: Eclipse或Intellij作为maven项目跑步从根文件夹运行start.sh先决条件Jdk 1.8( ) 上面的Maven 3( ) 阿帕奇Tomcat昂首阔步工具与实用...

Global site tag (gtag.js) - Google Analytics