`

JAVA编写的使用Socket模拟Http的GET操作

 
阅读更多

JAVA编写的使用Socket模拟Http的GET操作看后就很容易理解Web浏览器的原理了。

 

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;

public class TestSocket {
  String host = "www.javathinker.org";
  int port = 80;
  Socket socket;

  public void createSocket() throws Exception {
    socket = new Socket("www.163.com", 80);
  }

  public void communicate() throws Exception {
    StringBuffer sb = new StringBuffer("GET / HTTP/1.1/r/n");
    sb.append("Host: <A href="www.163.com" mce_href="www.163.com" target=_blank>www.163.com</A>/r/n");
    sb.append("Connection: Keep-Alive/r/n");
    sb.append("Accept: */*/r/n/r/n");

    // 发出HTTP请求
    OutputStream socketOut = socket.getOutputStream();
    socketOut.write(sb.toString().getBytes());
    socket.shutdownOutput(); // 关闭输出流

    // 接收响应结果
    System.out.println(socket);

    InputStream socketIn = socket.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(socketIn));
    String data;
    while ((data = br.readLine()) != null) {
      System.out.println(data);
    }
    socket.close();
  }

  public static void main(String args[]) throws Exception {
    TestSocket client = new TestSocket();
    client.createSocket();
    client.communicate();
  }

}



 

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    Java编写的简单爬虫程序

    Java编写的简单爬虫程序是一种基础的网络数据抓取工具,它主要利用Java语言的特性,结合网络编程的原理,实现对网页内容的自动化获取。在这个项目中,爬虫程序运用了Socket通信来与服务器建立连接,从而获取HTML网页...

    tcp_http.rar_http socket_http下载_socket 下载_socket下载http_tcp http

    当我们谈论"socket下载http"时,通常是指使用Socket编程来实现HTTP客户端,模拟浏览器发送HTTP请求到服务器,然后接收服务器返回的文件数据。HTTP请求通常包括方法(如GET或POST)、URL、协议版本、头部和可能的主体...

    java模拟QQ,图形化界面版

    在本项目中,开发者使用Java语言实现了一个人工模拟的QQ应用程序,主要目的是为了学习和实践。这个图形化界面版的模拟QQ具备了基础的登录、注册和聊天功能,虽然它是一个单机版,但仍然提供了丰富的学习素材。下面将...

    sockettest

    - **模拟请求**:SocketTest可以模拟各种HTTP请求,如GET、POST等,帮助测试服务器对不同请求类型的响应。 - **请求头定制**:允许用户自定义请求头,如User-Agent、Accept、Content-Type等,以便模拟不同客户端的...

    java模拟无线传输

    在Java编程语言中,模拟无线传输是一个有趣且实用的学习项目,可以帮助我们理解网络通信的基本原理。这个课程小实验主要是为了模拟用户数据报协议(UDP,User Datagram Protocol)的传输过程,因为UDP通常被用于无线...

    http.rar_HTTP java_http server java_java http_java web simple

    项目中提到的简单浏览器模拟器可能是用Java编写的一个小型程序,能够发起HTTP请求到服务器,并显示返回的HTML内容。这有助于开发者测试服务器的功能,而无需依赖真实浏览器。 **6. 学习资源** 这个项目对于初学者来...

    java源码包3

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    java源码包2

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    Jmeter Java Request Demo

    在JMeter中使用Java Request进行TCP测试,你需要编写Java代码来建立TCP连接,发送数据,并处理服务器返回的数据。这通常涉及到Socket编程,包括Socket的创建、数据的编码与解码等步骤。 HTTP请求则是我们最常见的...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    java源码包4

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    JAVA网络开发项目

    - Socket编程:Java通过Socket类提供了一种基于TCP/IP协议的网络通信方式,允许两个应用程序之间建立全双工的连接。 - DatagramSocket与MulticastSocket:这两个类用于UDP(用户数据报协议)通信,适合对数据实时...

    JAVA上百实例源码以及开源项目源代码

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    JAVA系统连接雅虎的

    1. **Java网络编程**:首先,我们需要使用Java的Socket编程来实现与雅虎服务器的连接。`java.net.Socket` 类用于创建TCP/IP套接字,它提供了发送和接收数据的基本方法。同时,`java.net.URL` 和 `java.net....

    Java程序设计之网络编程基础教程课件

    - Web服务器:模拟简单的HTTP服务器,响应客户端的GET请求。 通过本课程的学习,你将掌握Java网络编程的核心技能,能够独立编写基于TCP或UDP的网络应用,并理解如何利用Java进行HTTP通信。理论结合实践,将助你在...

    socket脚本开发监控.pptx

    在脚本开发与调试过程中,需要确保Socket脚本能准确地模拟用户操作,包括发送正确的请求数据、处理服务器返回的响应,并在必要时进行异常处理。同时,性能监控是测试过程中的关键环节。通过监控服务器的CPU、内存...

    HTTP Class for PHP , 支持 Curl 和 Socket

    - **自动化测试**:在编写自动化测试脚本时,模拟HTTP请求可以验证服务器端的逻辑。 5. **HTTP Class的扩展性** HTTP Class通常会提供一些扩展点,允许开发者自定义HTTP行为,例如设置超时时间、代理服务器、认证...

    网络机器人Java编程指南

    本指南将深入探讨如何使用Java语言来编写网络机器人,从而帮助你理解其基本概念、设计原理以及实际操作技巧。 一、网络机器人基础知识 网络机器人通过模拟人类用户的行为,遍历网站并抓取所需数据。这些数据可以是...

Global site tag (gtag.js) - Google Analytics