如何利用socket进行HTTwebsocket ip访问不了

如何用一个Socket服务端去接收一个http请求
来源:csdn
如何用一个Socket服务端去接收一个http请求?】
justsmilence:
ServerSocket serverSocket =
int port = 8888;
serverSocket = new ServerSocket(port, 1, InetAddress.getByName("127.0.0.1"));
} catch (IOException e)
e.printStackTrace();
System.exit(1);
while (!shutdown)
Socket socket =
InputStream input =
OutputStream output =
* 循环到此停止,在端口8888接收到一个HTTP请求才会继续
socket = serverSocket.accept();
input = socket.getInputStream();
output = socket.getOutputStream();
} catch (Exception e)
e.printStackTrace();
dragonsky_w:
学习了……谢谢……
循环到此停止,在端口8888接收到一个HTTP请求才会继续,这句话不太明白
端口自己可以随意设定吧
yanhuaxie:
一下代码是通过socket请求一个HTTP服务的过程,通过模拟请求一个web的登录操作,然后处理服务器返回的消息。这里只是简单的打印出服务器返回的消息,可以根据需要解析相应的数据,根据数据状态处理你的业务逻辑。只是简单的实现你的要求,没有考虑程序的健壮性,如关闭流应该放在finally里面等。
import java.io.BufferedR
import java.io.InputStreamR
import java.io.PrintW
import java.net.S
* SocketHttpTest.java V1.0
上午10:33:07
* Copyright 2011 **** Technologies. All rights reserved.
* Modification history(By Time Reason):
* Description:
public class SocketHttpTest {
* &pre&&b&功能描述:&/b&程序入口
* @author :****(Kevin.xie)
* &b&创建日期 :&/b& 上午10:33:10
* @param args
* &b&修改历史:&/b&(修改人,修改时间,修改原因/内容)
public static void main(String args[]) {
// Post请求格式如下:
String postParams = "userName=kevin.xie&pwd=demo8888";
int paramsLen = postParams.length();
// 请求的参数
StringBuffer post = new StringBuffer(512);
// web的请求登录路径:demo为项目名称,user/login.do为登录的action
post.append("POST /demo/user/login.do HTTP/1.1\r\n");
// tomcat服务器及端口
post.append("Host: 127.0.0.1:8080\r\n");
post.append("Accept: text/html\r\n");
post.append("Connection: Close\r\n");
post.append("Content-Length: " + paramsLen + "\r\n");
post.append("Content-Type: application/x-www-form-urlencoded\r\n");// *
post.append("\r\n");
// 请求的参数
post.append(postParams);
// socket客户端连接本机的tomcat服务器,端口为8080
Socket socket = new Socket("127.0.0.1", 8080);
// socket客户端发送登录请求
PrintWriter outWriter = new PrintWriter(socket.getOutputStream());
// 发送post请求
outWriter.println(post);
outWriter.flush();
// socket客户端接收tomcat返回的数据
BufferedReader inReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 一下是服务器返回的数据--本机demo返回的是json更是的数据
System.out.println("**************** Server responsed ****************");
String tmp = "";
while ((tmp = inReader.readLine()) != null) {
// 解析服务器返回的数据,做相应的处理
System.out.println(tmp);
outWriter.close();
inReader.close();
} catch (Exception e) {
e.printStackTrace();
一下是tomcat服务器返回的数据
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=9F51D84CDDB3FD77A65E; Path=/demo/; HttpOnly
Content-Type: application/charset=UTF-8
Content-Language: zh-CN
Content-Length: 108
Date: Thu, 12 Apr :05 GMT
Connection: close
{"struts.token":"FOZAQPTQPOIECS6H605BQ5Q0Z8MJ875O_7","AjaxResult":"0","values":{"errMsg":""}}
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动java使用socket实现http简单get请求 - 跟猪谈理想 - ITeye技术网站
package com.
import java.io.IOE
import java.io.InputS
import java.io.InputStreamR
import java.io.LineNumberR
import java.io.OutputS
import java.net.S
import java.net.UnknownHostE
public class SimpleHttpGet {
public static final String SEQUENCE = "\r\n";
public static void main(String[] args) throws UnknownHostException,
IOException {
String host = "";
Socket socket = new Socket(host, 80);
OutputStream os = socket.getOutputStream();
StringBuffer head = new StringBuffer();
// 这些是必须的
head.append("GET / HTTP/1.1" + SEQUENCE);
head.append("Host:" + host + SEQUENCE + SEQUENCE);
// 这些是可选的
head.append("Accept:text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8");
head.append("Accept-Language:zh-CN,q=0.8");
head.append("User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
os.write(head.toString().getBytes());
os.flush();
InputStream is = socket.getInputStream();
LineNumberReader lnr = new LineNumberReader(new InputStreamReader(is));
StringBuffer headRes = new StringBuffer();
String line =
int contentLength = 0;
line = lnr.readLine();
headRes.append(line + SEQUENCE);
if (line.startsWith("Content-Length")) {
contentLength = Integer.parseInt(line.split(":")[1].trim());
// 由于LineNumberReader会把\r\n替换掉,所以如果读到一行为""证明http head结束
} while (!line.equals(""));
int totalCount = 0;
byte[] buff = new byte[256];
StringBuffer contentRes = new StringBuffer();
while (totalCount & contentLength) {
int len = is.read(buff);
totalCount +=
contentRes.append(new String(buff, 0, len, "gbk"));
System.out.println(headRes.toString());
System.out.println(contentRes.toString());
socket.close();
只实现了get请求,而且如果http head中没有 content-length也会有问题, 比如有的网站头中有
浏览: 86842 次
来自: 西安
4.0导不进去啊,有大神在吗,能加个QQ吗?
wang_0056 写道wanwanGGYY 写道我使用Ext ...
wanwanGGYY 写道我使用Extjs4.2.1,点击添加 ...
shukuangren_javaeye 写道liujinwen ...Java Socket现实简单的HTTP服务
- 就只会点Java - ITeye技术网站
博客分类:
一个简单的用 Java Socket 编写的 HTTP 服务器应用, 演示了请求和应答的协议通信内容以及给客户端返回 HTML 文本和二进制数据文件(一个图片), 同时展示了 404, 200 等状态码.
首先运行这个程序,然后打开Web浏览器,键入http://localhost,则这个程序能够显示出浏览器发送了那些信息并且向浏览器返回一个网页和一副图片, 并测试同浏览器对话.
当浏览器看到 HTML 中带有图片地址时, 则会发出第二次连接来请求图片等资源.
这个例子可以帮您理解 Java 的 HTTP 服务器软件是基于 J2SE 的 Socket 等软件编写的概念, 并熟悉HTTP 协议.
相反的用 Telnet 连接到已有的服务器则可以帮忙理解浏览器的运行过程和服务器端的返回内容.
当用户在Web浏览器地址栏中输入一个带有http://前缀的URL并按下Enter后,或者在Web页面中某个以http://开头的超链接上单击鼠标,HTTP事务处理的第一个阶段--建立连接阶段就开始了.HTTP的默认端口是80.
随着连接的建立,HTTP就进入了客户向服务器发送请求的阶段.客户向服务器发送的请求是一个有特定格式的ASCII消息,其语法规则为:
& Method & & URL & & HTTP Version & &\r\n&
{ &Header&:&Value& &\r\n&}
{ Entity Body }
请求消息的顶端是请求行,用于指定方法,URL和HTTP协议的版本,请求行的最后是回车换行.方法GET,POST,HEAD,PUT,DELETE等.
在请求行之后是若干个报头(Header)行.每个报头行都是由一个报头和一个取值构成的二元对,报头和取值之间以":"分隔;报头行的最后是回车换行.常见的报头有Accept(指定MIME媒体类型),Accept_Charset(响应消息的编码方式),Accept_Encoding(响应消息的字符集),User_Agent(用户的浏览器信息)等.
在请求消息的报头行之后是一个回车换行,表明请求消息的报头部分结束.在这个之后是请求消息的消息实体(Entity Body).具体的例子参看httpRequest.txt.
Web服务器在收到客户请求并作出处理之后,要向客户发送应答消息.与请求消息一样,应答消息的语法规则为:
& HTTP Version& &Status Code& [&Message&]&\r\n&
{ &Header&:&Value& &\r\n& }
{ Entity Body }
应答消息的第一行为状态行,其中包括了HTTP版本号,状态码和对状态码进行简短解释的消息;状态行的最后是回车换行.状态码由3位数字组成,有5类:
参看:HTTP应答码及其意义
2XX 表示成功
3XX 表示URL已经被移走
4XX 表示客户错误
5XX 表示服务器错误
例如:415,表示不支持改媒体类型;503,表示服务器不能访问.最常见的是200,表示成功.常见的报头有:Last_Modified(最后修改时间),Content_Type(消息内容的MIME类型),Content_Length(内容长度)等.
在报头行之后也是一个回车换行,用以表示应答消息的报头部分的结束,以及应答消息实体的开始.
下面是一个应答消息的例子:
HTTP/1.0 200 OK
Date: Moday,07-Apr-97 21:13:02 GMT
Server:NCSA/1.1
MIME_Version:1.0
Content_Type:text/html
Last_Modified:Thu Dec 5 09:28:01 1996
Coentent_Length:3107
&HTML&&HEAD&&TITLE&&/HTML&
在用Java语言实现HTTP服务器时,首先启动一个java.net.ServerSocket在提供服务的端口上监听连接.向客户返回文本时,可以用 PrintWriter,但是如果返回二进制数据,则必须使用OutputStream.write(byte[])方法,返回的应答消息字符串可以使用 String.getBytes()方法转换为字节数组返回,或者使用PrintStream的print()方法写入文本,用 write(byte[])方法写入二进制数据.
源程序来自http://blog.csdn.net/myeclipse_java,本程序是在原有基础上进行了一些调整,源程序在POST请求时会阻塞,本程序解决了此问题,另外,本程序在原有的基础上增加了文件上传与下载模拟功能:
import java.io.F
import java.io.FileInputS
import java.io.IOE
import java.io.InputS
import java.io.PrintS
import java.io.PrintW
import java.net.ServerS
import java.net.S
import java.net.URLD
import java.util.ArrayL
import java.util.StringT
* @author 刘长炯
* modi by jzj
public class SimpleHttpServer implements Runnable {
ServerSocket serverS//服务器Socket
public static int PORT = 80;//标准HTTP端口
public String encoding = "GBK";
public SimpleHttpServer() {
serverSocket = new ServerSocket(PORT);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
new Thread(this).start();
System.out.println("HTTP服务器正在运行,端口:" + PORT);
public void run() {
while (true) {
Socket client = serverSocket.accept();//客户机(这里是 IE 等浏览器)已经连接到当前服务器
if (client != null) {
System.out.println("连接到服务器的用户:" + client);
// 第一阶段: 打开输入流
InputStream is = client.getInputStream();
System.out.println("客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&");
// 读取第一行, 请求地址
String line = readLine(is, 0);
//打印请求行
System.out.print(line);
// & Method & & URL & & HTTP Version & &\r\n&
取的是URL部分
String resource = line.substring(line.indexOf('/'), line
.lastIndexOf('/') - 5);
//获得请求的资源的地址
resource = URLDecoder.decode(resource, encoding);//反编码 URL 地址
String method = new StringTokenizer(line).nextElement()
.toString();// 获取请求方法, GET 或者 POST
int contentLength = 0;//如果为POST方法,则会有消息体长度
// 读取所有浏览器发送过来的请求参数头部信息
line = readLine(is, 0);
//如果有Content-Length消息头时取出
if (line.startsWith("Content-Length")) {
contentLength = Integer.parseInt(line.split(":")[1]
//打印请求部信息
System.out.print(line);
//如果遇到了一个单独的回车换行,则表示请求头结束
} while (!line.equals("\r\n"));
//如果是POST请求,则有请求体
if ("POST".equalsIgnoreCase(method)) {
//注,这里只是简单的处理表单提交的参数,而对于上传文件这里是不能这样处理的,
//因为上传的文件时消息体不只是一行,会有多行消息体
System.out.print(readLine(is, contentLength));
System.out.println();
System.out.println("客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&");
System.out.println("用户请求的资源是:" + resource);
System.out.println("请求的类型是: " + method);
System.out.println();
//如果是下载文件
if (resource.startsWith("/download")) {
fileDownload("test.txt", client);
closeSocket(client);
// GIF 图片就读取一个真实的图片数据并返回给客户端
if (resource.endsWith(".gif")) {
imgDownload("test.gif", client);
closeSocket(client);
// 请求 JPG 格式就报错 404
if (resource.endsWith(".jpg")) {
PrintWriter out = new PrintWriter(client.getOutputStream(),
out.println("HTTP/1.0 404 Not found");//返回应答消息,并结束应答
out.println();// 根据 HTTP 协议, 空行将结束头信息
out.close();
closeSocket(client);
// 用 writer 对客户端 socket 输出一段 HTML 代码
PrintWriter out = new PrintWriter(client.getOutputStream(),
out.println("HTTP/1.0 200 OK");//返回应答消息,并结束应答
out.println("Content-Type:text/charset=" + encoding);
out.println();// 根据 HTTP 协议, 空行将结束头信息
out.println("&h1& Hello Http Server&/h1&");
out.println("你好, 这是一个 Java HTTP 服务器 demo 应用.&br&");
out.println("您请求的路径是: " + resource + "&br&");
out.println("你请求的页面含有图片:&img src='test.gif'&&br&"
+ "&a href='test.gif'&手动点击打开test.gif图片文件.&/a&");
out.println("&br&服务器不支持jpg格式图片,所以显示XX:"
+ "&img src='test.jpg'&&br&&a href='test.jpg'&"
+ "手动点击打开test.jpg,会跳转另一页面,并且服务返回为404错误&/a&&br&");
.println("&form method=post action='/path?qryParm=POST URL查询参数' & POST 表单 "
+ "&input name=username value='用户'& "
+ "&input name=submit type=submit value=submit&&/form&");
.println("&form method=get action='/path?qryParm=GET URL查询参数' &&GET 表单 "
+ "&input name=username value='用户'& "
+ "&input name=submit type=submit value=submit&&/form&");
.println("&form method=post action='/path?qryParm=POST URL查询参数'"
+ " enctype='multipart/form-data' &"
+ "文件上传& &input type='file' name=file1 &&br&"
+ "&&&&&&&&& "
+ "&input type='file' name=file2 &&br&"
+ "&&&&&&&&& "
+ "&input name=username value='用户'& "
+ "&input name=submit type=submit value=submit&&/form&");
out.println("&a href='/download'&点击此处模拟文件下载&/a&");
out.close();
closeSocket(client);
} catch (Exception e) {
System.out.println("HTTP服务器错误:" + e.getLocalizedMessage());
//System.out.println(client+"连接到HTTP服务器");//如果加入这一句,服务器响应速度会很慢
} catch (Exception e) {
System.out.println("HTTP服务器错误:" + e.getLocalizedMessage());
* 这里我们自己模拟读取一行,因为如果使用API中的BufferedReader时,它是读取到一个回车换行后
* 才返回,否则如果没有读取,则一直阻塞,这就导致如果为POST请求时,表单中的元素会以消息体传送,
* 这时,消息体最末按标准是没有回车换行的,如果此时还使用BufferedReader来读时,则POST提交
* 时会阻塞。如果是POST提交时我们按照消息体的长度Content-Length来截取消息体,这样就不会阻塞
private String readLine(InputStream is, int contentLe) throws IOException {
ArrayList lineByteList = new ArrayList();
byte readB
int total = 0;
if (contentLe != 0) {
readByte = (byte) is.read();
lineByteList.add(Byte.valueOf(readByte));
} while (total & contentLe);//消息体读还未读完
readByte = (byte) is.read();
lineByteList.add(Byte.valueOf(readByte));
} while (readByte != 10);
byte[] tmpByteArr = new byte[lineByteList.size()];
for (int i = 0; i & lineByteList.size(); i++) {
tmpByteArr[i] = ((Byte) lineByteList.get(i)).byteValue();
lineByteList.clear();
String tmpStr = new String(tmpByteArr, encoding);
/* http请求的header中有一个Referer属性,这个属性的意思就是如果当前请求是从别的页面链接过
* 来的,那个属性就是那个页面的url,如果请求的url是直接从浏览器地址栏输入的就没有这个值。得
* 到这个值可以实现很多有用的功能,例如防盗链,记录访问来源以及记住刚才访问的链接等。另外,浏
* 览器发送这个Referer链接时好像固定用UTF-8编码的,所以在GBK下出现乱码,我们在这里纠正一下
if (tmpStr.startsWith("Referer")) {//如果有Referer头时,使用UTF-8编码
tmpStr = new String(tmpByteArr, "UTF-8");
return tmpS
* 关闭客户端 socket 并打印一条调试信息.
* @param socket 客户端 socket.
void closeSocket(Socket socket) {
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
System.out.println(socket + "离开了HTTP服务器");
* 读取一个图像文件的内容并返回给浏览器端.
* @param fileName 文件名
* @param socket 客户端 socket.
void imgDownload(String fileName, Socket socket) {
PrintStream out = new PrintStream(socket.getOutputStream(), true);
File fileToSend = new File(fileName);
if (fileToSend.exists() && !fileToSend.isDirectory()) {
out.println("HTTP/1.0 200 OK");//返回应答消息,并结束应答
out.println("Content-Type: application/octet-stream");
out.println("Content-Length: " + fileToSend.length());// 返回内容字节数
out.println();// 根据 HTTP 协议, 空行将结束头信息
FileInputStream fis = new FileInputStream(fileToSend);
byte data[] = new byte[fis.available()];
fis.read(data);
out.write(data);
//文件下载完后关闭socket流,但socket还没有关闭
out.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
* 读取一个文件的内容并返回给浏览器端.
* @param fileName 文件名
* @param socket 客户端 socket.
void fileDownload(String fileName, Socket socket) {
PrintStream out = new PrintStream(socket.getOutputStream(), true);
File fileToSend = new File(fileName);
if (fileToSend.exists() && !fileToSend.isDirectory()) {
out.println("HTTP/1.0 200 OK");//返回应答消息,并结束应答
out.println("Content-Type: application/octet-charset=" + encoding);
/* Content-Disposition不是标准参数,查看一下HTTP/1.1的规范文档,对于这个参数的解释大意如下:
* Content-Disposition参数本来是为了在客户端另存文件时提供一个建议的文件名,但是考虑到安全的原因,
* 就从规范中去掉了这个参数。但是由于很多浏览器已经能够支持这个参数,所以只是在规范文档中列出,但是要
* 注意这个不是HTTP/1.1的标准参数。其值为“attachment”,那么无论这个文件是何类型,浏览器都会提示我
* 们下载此文件,因为此时它认为后面的消息体是一个“附件”,不需要由浏览器来处理了。
out.println("Content-Disposition:filename=测试下载文件.txt");
out.println("Accept-Ranges: bytes");
out.println("Content-Length: " + fileToSend.length());// 返回内容字节数
out.println();// 根据 HTTP 协议, 空行将结束头信息
FileInputStream fis = new FileInputStream(fileToSend);
byte[] tmpByteArr = new byte[10];//这里为了测试看下载进度条,所以设置小点
while (fis.available() & 0) {
int readCount = fis.read(tmpByteArr);
out.write(tmpByteArr, 0, readCount);
//文件下载完后关闭socket流
out.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) {
PORT = 8080;
new SimpleHttpServer();
下面是我测试的过程:
在地址栏输入http://localhost:8080/后显示如下页面:
点击“手动点击打开test.gif图片文件. ”连接显示以下图片:
再点击“手动点击打开test.jpg,会跳转另一页面,并且服务返回为404错误”显示以下错误页面:
再点击“点击此处模拟文件下载”显示文件下载框:
最后是服务器运行日志,仅供参考:
HTTP服务器正在运行,端口:8080连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56155,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET / HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Accept-Language: zh-cnUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56155,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56156,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.gif HTTP/1.1Accept: */*Referer: http://localhost:8080/Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.gif请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56156,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56157,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.jpg HTTP/1.1Accept: */*Referer: http://localhost:8080/Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.jpg请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56157,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56158,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.gif HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Referer: http://localhost:8080/Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.gif请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56158,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56159,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.jpg HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.jpg请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56159,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56160,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&POST /path?qryParm=POST%20URL查询参数 HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Referer: http://localhost:8080/Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateHost: localhost:8080Content-Length: 35Connection: Keep-AliveCache-Control: no-cache
username=%D3%C3%BB%A7&submit=submit客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/path?qryParm=POST URL查询参数请求的类型是: POST
Socket[addr=/0:0:0:0:0:0:0:1,port=56160,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56161,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.gif HTTP/1.1Accept: */*Referer: http://localhost:8080/path?qryParm=POST URL查询参数Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.gif请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56161,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56162,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.jpg HTTP/1.1Accept: */*Referer: http://localhost:8080/path?qryParm=POST URL查询参数Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.jpg请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56162,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56163,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /path?username=%D3%C3%BB%A7&submit=submit HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Referer: http://localhost:8080/path?qryParm=POST URL查询参数Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/path?username=用户&submit=submit请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56163,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56165,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.jpg HTTP/1.1Accept: */*Referer: http://localhost:8080/path?username=%D3%C3%BB%A7&submit=submitAccept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.jpg请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56165,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56164,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.gif HTTP/1.1Accept: */*Referer: http://localhost:8080/path?username=%D3%C3%BB%A7&submit=submitAccept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.gif请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56164,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56168,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&POST /path?qryParm=POST%20URL查询参数 HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Referer: http://localhost:8080/path?username=%D3%C3%BB%A7&submit=submitAccept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Content-Type: multipart/form- boundary=---------------------------7d91c380444Accept-Encoding: gzip, deflateHost: localhost:8080Content-Length: 591Connection: Keep-AliveCache-Control: no-cache
-----------------------------7d91c380444Content-Disposition: form- name="file1"; filename="file1.txt"Content-Type: text/plain
123-----------------------------7d91c380444Content-Disposition: form- name="file2"; filename="file2.txt"Content-Type: text/plain
这是第二个测试文件的内容:中a ~!@#$%^&*()_+{}|:\" &&?`-=[]\\;',./-----------------------------7d91c380444Content-Disposition: form- name="username"
用户-----------------------------7d91c380444Content-Disposition: form- name="submit"
submit-----------------------------7d91c380444--
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/path?qryParm=POST URL查询参数请求的类型是: POST
Socket[addr=/0:0:0:0:0:0:0:1,port=56168,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56169,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.gif HTTP/1.1Accept: */*Referer: http://localhost:8080/path?qryParm=POST URL查询参数Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.gif请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56169,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56170,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /test.jpg HTTP/1.1Accept: */*Referer: http://localhost:8080/path?qryParm=POST URL查询参数Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/test.jpg请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56170,localport=8080]离开了HTTP服务器连接到服务器的用户:Socket[addr=/0:0:0:0:0:0:0:1,port=56171,localport=8080]客户端发送的请求信息: &&&&&&&&&&&&&&&&&&&&&&&&&GET /download HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Referer: http://localhost:8080/path?qryParm=POST URL查询参数Accept-Language: zh-CNUser-Agent: Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-Alive
客户端发送的请求信息结束 &&&&&&&&&&&&&&&&&&&&&&&&&&用户请求的资源是:/download请求的类型是: GET
Socket[addr=/0:0:0:0:0:0:0:1,port=56171,localport=8080]离开了HTTP服务器
浏览 16498
junJZ_2008
浏览: 993465 次
来自: 湖南澧縣
引用String a= &abc&,首先在 ...
谢谢分享matcher.appendReplacement(s ...
完全理解,比网上其他资料都要详细

我要回帖

更多关于 java 访问websocket 的文章

 

随机推荐