Advertisement

Java HTTP发送与接收示例(使用com.sun.net.httpserver包)

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:RAR


简介:
本示例演示如何在Java中利用com.sun.net.httpserver包进行HTTP请求的发送和处理,包括创建服务器、设置处理器及响应客户端等操作。适合初学者学习网络编程基础。 在Java编程环境中,HTTP通信是常见且至关重要的任务,它涉及到客户端与服务器之间的数据交换。实现这一功能可以使用多种库,在这里我们关注`com.sun.net.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!。 接下来是使用Java的标准库发送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来实现这些功能。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Java HTTP使com.sun.net.httpserver
    优质
    本示例演示如何在Java中利用com.sun.net.httpserver包进行HTTP请求的发送和处理,包括创建服务器、设置处理器及响应客户端等操作。适合初学者学习网络编程基础。 在Java编程环境中,HTTP通信是常见且至关重要的任务,它涉及到客户端与服务器之间的数据交换。实现这一功能可以使用多种库,在这里我们关注`com.sun.net.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!。 接下来是使用Java的标准库发送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来实现这些功能。
  • Android UDP
    优质
    本示例展示了如何在Android系统中使用UDP协议进行数据包的发送和接收,包括创建Socket、绑定端口及处理网络通信的基本方法。 Android UDP发送接收示例:使用16进制进行数据的发送与接收。
  • Jrtplib——PlayStream V1.2
    优质
    Jrtplib发送与接收示例——PlayStream V1.2是一款基于Jrtplib库开发的实时流媒体播放工具,版本更新优化了性能和稳定性,提供详细的网络音频视频传输指导。 基于jrtplib实现了RTP发送和接收功能,支持发送H264、PS、TS等文件流。在接收端读取到发来的数据后,提取Payload中的视频数据,并利用FFmpeg进行分离与解码处理,最终将RGB格式的视频显示于窗口中。更多详细内容可查阅我博客上的相关文章。
  • C# Winform中使SocketsJSON
    优质
    本教程详细介绍了在C# Winform应用程序中如何利用Socket编程技术来实现客户端与服务器之间的JSON数据传输。通过具体代码示例,帮助开发者掌握网络通信基础及JSON处理技巧。 博客介绍了如何在C# Winform应用程序中实现JSON与对象之间的转换,并使用Socket进行JSON数据传输的技术细节。
  • UDP图片
    优质
    本示例展示了如何使用UDP协议在计算机网络中发送和接收图片,帮助用户理解UDP通信的基本原理及实现方式。 使用UDP方式通过socket发送和接收图片的测试方法。
  • Unity利HTTP进行数据的
    优质
    本文介绍了如何使用Unity引擎通过HTTP协议实现数据的发送和接收,涵盖了基础概念、代码示例及应用场景。适合初学者入门学习。 在Unity中通过HTTP接口发送和接收数据,并且每5秒刷新一次。
  • CC430_F5137程序
    优质
    本示例程序为使用TI公司CC430F5137微控制器进行无线数据传输所设计,包括了完整的代码和配置说明,用于演示如何实现数据的接收与发送。 CC430_F5137收发例程适用于IAR 5.10版本的开发环境。该例程提供了详细的步骤来帮助开发者进行无线通信模块的应用程序开发,特别适合于需要利用TI CC430系列微控制器进行数据传输和接收的应用场景。通过遵循此文档中的指导,用户可以更好地理解和实现CC430_F5137芯片的各项功能特性。
  • Android Studio 中的 RTP
    优质
    本项目提供了一个在Android Studio环境下进行RTP(实时传输协议)数据包发送和接收的实例代码。适合开发者学习网络编程和音视频流处理技术。 Android Studio 通过 RTP 发送和接收的 demo 主要是将官网中的 jlibrtp 0.2.2 协议包含的例子引用到工程中。demo 中采用局域网广播的形式来发送数据,指定的 IP 需要自己去尝试设置。
  • C# RabbitMQ简洁.zip
    优质
    此资源包含使用C#编程语言实现RabbitMQ消息队列技术的基本发送和接收操作的简洁示例代码。适合初学者快速上手。 C# RabbitMQ发送和接收的简单示例展示了轮流接收消息的功能以及集群功能。
  • C#中文件的
    优质
    本示例展示了如何使用C#编程语言在应用程序间实现文件的发送与接收功能,涵盖基础网络通信及数据流操作。 C#发送和接收文件示例使用socket分块传输技术,并支持断点续传功能。