目标网页URL:
http://www.baidu.com
public class HttpSender {
private static byte[] request = null;
static {
StringBuffer temp = new StringBuffer();
temp.append("GET http://www.baidu.com HTTP/1.1\r\n");
temp.append("Host: 119.75.217.109:80\r\n");
temp.append("Connection: keep-alive\r\n");
temp.append("Cache-Control: max-age=0\r\n");
temp
.append("User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11\r\n");
temp
.append("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n");
temp.append("Accept-Encoding: gzip,deflate,sdch\r\n");
temp.append("Accept-Language: zh-CN,zh;q=0.8\r\n");
temp.append("Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3\r\n");
temp.append("\r\n");
request = temp.toString().getBytes();
}
public static void sendHttpRequest() throws Exception {
Socket socket = new Socket("119.75.217.109", 80);
OutputStream os = socket.getOutputStream();
os.write(request);
os.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String temp = null;
while ((temp = br.readLine()) != null) {
System.out.println(temp);
}
br.close();
os.close();
socket.close();
}
public static void main(String[] args) throws Exception {
sendHttpRequest();
}
}
运行后输出服务器响应。
分享到:
相关推荐
处理完请求后,我们需要构造HTTP响应并发送回客户端。一个简单的HTTP响应可能如下所示: ```csharp string response = "HTTP/1.1 200 OK\r\n" + "Content-Type: text/html\r\n" + "\r\n" + "<html><body>Hello, ...
4. 接收响应:通过`recv()`或`read()`函数从Socket读取服务器的响应数据。 5. 处理响应:解析接收到的HTTP响应,提取状态码、头部信息和实体内容。 6. 关闭连接:使用`close()`函数关闭Socket连接。 在给定的文件...
服务器接收到请求后,根据请求内容返回一个HTTP响应,响应包括状态码、头部信息和可能的数据体(如HTML文档、图片、文件等)。 在Socket编程中,我们需要自己构建这些HTTP请求。首先创建一个Socket连接到目标服务器...
服务器接收到请求后,会返回HTTP响应,包括状态行、头部和可能的数据体。例如: ``` HTTP/1.1 200 OK Content-Type: text/html Content-Length: 18 <html>Hello, World! ``` 客户端接收到响应后,需要解析响应头...
我们可以读取`Socket`的输入流获取请求数据,然后解析出请求的URL,比如`/mnt/sdcard/IDATACHINA/file.html`。 解析完请求后,服务器需要找到对应的文件并将其内容发送回客户端。可以使用`FileInputStream`打开文件...
【基于Socket的http监听】是一种网络编程技术,用于构建自定义的HTTP服务器,它通过使用低级别的Socket接口来实现对HTTP请求的接收和响应。在Java等编程语言中,Socket编程是实现网络通信的基础,而HTTP监听则是在...
标题 "一个简单的Socket实现的HTTP响应服务器" 描述了如何使用Java中的Socket编程来构建一个基本的HTTP服务器,这是网络编程中的一个基础概念。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,而...
HTTP响应同样由状态行、响应头、空行和响应体组成。 3. **转换逻辑**: 要实现Socket与HTTP之间的转换,可以采用以下步骤: - 将Socket接收的数据转换为HTTP请求或响应格式。 - 使用HTTP服务器(如ASP.NET ...
5. 接收服务器返回的HTTP响应,包括状态码、头部和响应主体。 6. 检查状态码,如果成功(通常是200),则开始接收并保存响应主体,即下载的文件内容。 7. 关闭Socket连接,执行TCP的四次挥手。 在"tcp_http.rar"的...
5. **接收响应**:使用`recv`函数从服务器接收HTTP响应报文,处理状态码、头部信息和可能的响应体。 6. **关闭连接**:当通信完成后,调用`shutdown`和`closesocket`函数关闭SOCKET连接,并通过`WSACleanup`函数...
同时,定义一个`decodeResponse`方法,从Socket的`InputStream`读取数据,解析出HTTP响应的各个部分。 接下来,我们讨论HTTPS(安全套接层超文本传输协议),它是HTTP的安全版本,使用SSL/TLS协议对通信进行加密,...
HTTP响应也包含响应行、响应头部和可能的响应体。注意,由于HTTP协议规定,响应体和头部之间由两个连续的换行符分隔,因此在解析时需要特别关注这一特性。 标签中的"c#http协议"提示我们,我们将使用C#语言来实现这...
需要注意的是,HTTP响应可能分块传输,需要处理 Chunked Transfer Encoding。 7. **处理响应**:解析收到的数据,提取状态码、头部信息和文件内容。如果状态码为200,表示成功,文件内容通常位于响应体中。 8. **...
服务器接收到请求后,会返回HTTP响应,我们使用recv()函数读取这些数据。响应通常包含状态码(如200表示成功)、头部信息和资源内容。当收到的状态码为200且连接未关闭时,我们可以持续读取数据直到完成下载。 为了...
6. **构造响应** - 创建HTTP响应,包括状态行(状态码、HTTP版本),头部(如Content-Type、Content-Length),以及响应体(文件内容或错误消息)。 7. **发送响应** - 将响应写入Socket的输出流,然后关闭连接。 ...
发送完请求后,我们需要读取服务器返回的HTTP响应。这通常涉及处理网络I/O的阻塞问题。为了实现异步I/O模型,我们可以使用多线程、多进程或者事件驱动的编程模型,如Python的asyncio库。在异步I/O中,当等待Socket...
6. **响应HTTP**:根据请求内容,生成相应的HTTP响应,包括状态码、响应头和响应体,然后通过Socket发送回客户端。 7. **关闭连接**:处理完请求后,关闭Socket连接。 在"www.pudn.com.txt"和"04_http"这两个文件...
为了处理HTTP响应,你可以编写一个简单的解析器,逐行读取响应并检查状态码(如200表示成功,404表示未找到)。响应头部通常以空行结束,之后是响应体。 在实际编程中,还要考虑错误处理,如网络中断、超时或无效的...
标题“Tomcat分配请求之——Socket获取请求”主要涉及的是Tomcat服务器在处理HTTP请求时的核心机制。在Web服务器中,Tomcat是一个广泛使用的开源应用服务器,它负责解析并响应来自客户端(如浏览器)的HTTP请求。这...
最后,我们需要将请求行、请求头和消息体写入Socket的输出流,并从Socket的输入流读取服务器的响应。在Java中,可以使用`Socket.getOutputStream()`和`Socket.getInputStream()`方法获取这些流。 以下是一个简单的...