目标:通过socket 模拟HTTP协议连接 tomcat,做一次GET请求
HTTP 协议的格式:
request: GET /index.jsp?username=xinchun.wang&password=123456 HTTP/1.1 Host:192.168.237.230 Connection: close response: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=2D3FE2C8EA372E3ACC69C48E12348B44; Path=/ Content-Type: text/html;charset=ISO-8859-1 Content-Length: 288 Date: Tue, 25 Apr 2017 03:06:57 GMT Connection: close <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> xinchun.wang 123456 </body> </html>
代码参考:
public class ClientGet { public static void main(String[] args) { sendRequest(8078); } public static void sendRequest(int port) { try { Socket socket = new Socket("192.168.237.230", port); OutputStream out = socket.getOutputStream(); // 由Socket对象得到输入流,并构造相应的BufferedReader对象 BufferedReader in = new BufferedReader(new InputStreamReader(socket .getInputStream())); StringBuilder sb = new StringBuilder(); sb.append("GET /index.jsp?username=xinchun.wang&password=123456 HTTP/1.1\r\n"); sb.append("Host:192.168.237.230\r\n"); sb.append("Connection: close\r\n"); sb.append("\r\n"); out.write(sb.toString().getBytes()); out.flush(); String line = in.readLine(); while(line != null && line.toString() != ""){ System.out.println(line); line = in.readLine(); } out.close(); // 关闭Socket输出流 in.close(); // 关闭Socket输入流 socket.close(); // 关闭Socket } catch (Exception e) { System.out.println("Error. " + e); } } }
相关推荐
- **Android Socket编程**:使用Java的Socket类建立与NTRIP服务器的连接,收发数据。 - **JSON或XML解析**:NTRIP数据可能以这两种格式传输,需要解析成Java对象。 - **Android权限管理**:可能需要获取网络访问权限...
2 I run the two py file code in two machines,first, you should get to know the ip address of server machine, and replace the HOST constant with your own server ip, then type message firstly on ...
然而,HTTP协议本身并不支持持久连接,而WebSocket则提供了这样的能力,因此"restful-socket-client"应运而生,它旨在提供一种方式,让客户端能够像使用RESTful API一样与WebSocket服务器交互。 在JavaScript中,...
HttpGet httpGet = new HttpGet("http://www.example.com"); CloseableHttpResponse response = httpClient.execute(httpGet); try { System.out.println(response.getStatusLine()); ...
smart-http 是一款可编程的 Http 应用微内核,基于smart-socket实现的轻量级http服务器,方便用户根据自身需求进行 Server 或 Client 的应用开发。支持GET、POST的 HTTP 请求。提供了 URL 路由组件,可以快速搭建...
用法import { createClient } from 'reactotron-core-client'// setup a reactotron clientconst client = createClient ( { // injected in for compatibility createSocket : path => new WebSocket ( path ) , ...
if (getaddrinfo("127.0.0.1", "1234", &hints, &result) != 0) { std::cout ; WSACleanup(); return 1; } // 连接服务器 for (ptr = result; ptr != NULL; ptr = ptr->ai_next) { ConnectSocket = ...
在实际应用中,服务器和客户端的通信可能涉及到更复杂的数据交换格式,如JSON或XML,以及HTTP协议的请求方法(GET、POST等)和状态码。还有可能需要考虑安全性问题,例如使用SSL/TLS进行加密以保护数据传输的安全。 ...
标题中的"clt.cpp.tar.gz_socket_client.cpp"表明这是一个关于客户端Socket编程的示例,主要涉及C++语言。"clt.cpp"可能是源代码文件,而".tar.gz"是Linux/Unix系统中常用的文件压缩格式,它包含了"socket_client....
9. **RESTful API设计**:用于构建可扩展的Web服务,通过HTTP方法(GET、POST、PUT、DELETE等)操作资源,使得客户端和服务器之间的交互更加简单、直观。 10. **Web Socket**:这是一种持久化的双向通信协议,允许...
`vue-socket.io`是一个插件,它为Vue提供了对`socket.io-client`的封装,允许开发者轻松地在Vue组件中集成WebSocket通信。在实际开发中,可能会遇到无法接收到服务器发送的数据,这通常是由于配置不当或者使用方法...
在这个FTP-Client-.rar_ftp client C的资源中,我们看到的是一个用C语言编写的FTP客户端程序,它允许用户通过FTP协议连接到FTP服务器,进行文件上传、下载和其他相关操作。 FTP客户端通常包括以下功能: 1. **登录...
这里的`.allowedOrigins("*")`表示允许任何来源的请求,`.allowedMethods("*")`允许任何方法(GET、POST、PUT等),`.allowedHeaders("*")`允许任何头信息。这将允许所有跨域请求通过。 最后,在客户端,我们可以...
生成 HTTP GET 和 POST 请求 读取HTTP响应 将 HTTP 响应负载保存到本地文件 ======== 测试网站 数据格式:名称=str str 可以是任何字符串(例如 str=Wei) 通过 HTTP GET 和 POST 将数据传送到此 URL
socketcluster-client-go 请参阅示例以获取更多详细信息:概述该客户端提供以下功能易于安装和使用支持发出和收听远程事件发布/订阅验证(JWT) 可用于测试所有服务器端功能安装使用 go get github....
当浏览器向服务器发送HTTP GET或POST请求时,服务器会解析这些请求,然后通过Socket返回相应的HTML、CSS、JavaScript等资源,使得浏览器能够渲染并显示网页内容。 然而,传统的HTTP协议存在一些限制,例如它不支持...
client_socket, addr = server_socket.accept() print(f"接收到来自{addr}的连接请求") # 接收客户端发送的数据 request_data = client_socket.recv(1024).decode('utf-8') # 分析请求,处理HTTP请求行 ...
在IT行业中,Socket.IO是一种流行的实时应用程序框架,它允许开发者创建具有实时通信...在这个过程中,Flutter作为前端开发工具,可以通过socket_io_client库与服务器进行有效通信,实现双向数据流,增强应用的交互性。
此包中的主要类包括`CloseableHttpClient`(负责创建和管理HTTP客户端实例)、`HttpGet`、`HttpPost`(用于构造不同类型的HTTP请求)和`CloseableHttpResponse`(用于接收和处理HTTP响应)。 `httpcomponents-core-...