JAVA HTTP 发送 接收 com.sun.net.httpserver包 demo
在Java编程环境中,HTTP通信是常见且至关重要的任务,它涉及到客户端与服务器之间的数据交换。在Java中,我们可以使用多种库来实现HTTP通信,其中包括`com.sun.net.httpserver`包,这是一个内置的轻量级HTTP服务器,适用于测试、原型设计以及简单的应用。本示例将详细介绍如何使用`com.sun.net.httpserver`包进行HTTP发送和接收。 `com.sun.net.httpserver.HttpServer`是该包的核心类,它可以创建一个监听特定端口的HTTP服务器。以下是一个简单的启动HTTP服务器的示例: ```java import com.sun.net.httpserver.HttpServer; import com.sun.net.httpserver.HttpHandler; public class ERPHttpServer { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/hello", new MyHandler()); server.setExecutor(null); // creates a default executor server.start(); } static class MyHandler implements HttpHandler { @Override public void handle(HttpExchange t) throws IOException { String response = "Hello, World!"; t.getResponseHeaders().add("Content-Type", "text/plain"); t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } } ``` 在这个例子中,我们创建了一个监听8000端口的服务器,并设置了一个处理器`MyHandler`,当收到`/hello`的请求时,服务器返回"Hello, World!"。 接下来,讲解如何使用`HttpURLConnection`或`java.net.URL`发送HTTP请求。以下是一个简单的GET请求示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HTTPClient { public static void main(String[] args) throws Exception { URL url = new URL("http://localhost:8000/hello"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Accept", "application/json"); if (connection.getResponseCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + connection.getResponseCode()); } BufferedReader br = new BufferedReader(new InputStreamReader((connection.getInputStream()))); String output; while ((output = br.readLine()) != null) { System.out.println(output); } connection.disconnect(); } } ``` 这个客户端程序会向我们在服务器端设置的`/hello`路径发送一个GET请求,并打印出响应的内容。 `com.sun.net.httpserver`包虽然功能相对简单,但足够应对许多基本的HTTP交互需求,尤其适合测试和小型应用。不过,对于更复杂的应用场景,如需要支持HTTPS、管理cookies或者处理WebSocket,可能需要使用更强大的第三方库,如Apache HttpClient或OkHttp。 通过`com.sun.net.httpserver`包,Java开发者可以轻松地搭建自己的HTTP服务器并进行客户端的HTTP请求。这个简单的包提供了一种快速原型开发的方式,帮助开发者理解HTTP协议的工作原理,同时在不需要引入额外依赖的情况下实现基本的网络通信功能。
- 1
- 粉丝: 2
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助