Java实现UTF - 8编码的HTTP请求与接收:附详细代码示例
在Java中进行UTF-8编码的HTTP请求和接收,你可以使用`java.net`包中的`URLConnection`类。 发送UTF-8编码的HTTP请求: 1. 创建`URL`对象,指定目标URL。 2. 调用`openConnection()`方法获取`URLConnection`对象。 3. 设置请求方法、接收和发送数据的类型。 4. 设置请求头中的`Content-Type`为`application/x-www-form-urlencoded;charset=UTF-8`,指定编码为UTF-8。 5. 获取`OutputStream`对象,用于发送数据。 6. 将需要发送的数据按照UTF-8编码转为字节数组并发送。 7. 获取响应数据。 以下是一个示例代码: ```java import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; public class HttpClient { public static void main(String[] args) { try { // 创建URL对象 URL url = new URL("http://example.com"); // 打开连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置请求方法和接收数据类型 connection.setRequestMethod("POST"); connection.setRequestProperty("Accept-Charset", "UTF-8"); // 设置请求头中的Content-Type connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); // 向服务端发送数据 String data = "param1=value1¶m2=value2"; byte[] postData = data.getBytes("UTF-8"); connection.setDoOutput(true); OutputStream outputStream = connection.getOutputStream(); outputStream.write(postData); outputStream.flush(); // 获取响应数据 // ... // 关闭连接 outputStream.close(); connection.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } ``` 接收UTF-8编码的HTTP请求: 1. 创建`URL`对象,指定本地的URL。 2. 调用`openConnection()`方法获取`URLConnection`对象。 3. 获取`InputStream`对象,用于接收数据。 4. 将接收到的数据按照UTF-8编码转为字符串。 5. 对接收到的数据进行处理。 以下是一个示例代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpServer { public static void main(String[] args) { try { // 创建URL对象 URL url = new URL("http://localhost:8080"); // 打开连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 获取输入流 InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); // 读取数据 StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } // 处理数据 // ... // 关闭连接和输入流 reader.close(); inputStream.close(); connection.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } ``` 请根据你具体的需求进行修改和完善。 ######[AI写代码神器 | 3051点数解答 | 2023-12-21 10:26:45]
- 易语言实现高并发 HTTP 操作:多线程、线程池与异步操作实战(字节豆包 | 849点数解答 | 2025-06-03 23:17:33)275
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)420
- 易语言模拟POST请求抓包内容:代码示例及注意要点揭秘(字节豆包 | 1131点数解答 | 2025-06-02 12:46:09)195
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)44
- Java JSP 代码:用 List 存储 Map 集合并循环添加姓名和年龄(GPT | 240点数解答 | 2024-11-25 09:17:43)256
- PHP代码:循环检测域名状态,借助HTTP请求与CURL实现(GPT | 947点数解答 | 2024-10-27 11:56:50)266
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)322
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1196
- Python实现深度优先爬虫:精准爬取百度域名下链接,模拟输出详细信息(GPT | 2142点数解答 | 2025-05-13 15:54:49)302
- Python 实现:计算 n! 不同因子个数,附代码详解与复杂度分析(字节豆包 | 731点数解答 | 2026-01-12 12:15:34)113
- 深入探究:n 位格雷码中编号 k 二进制串的求解算法与实现(DeepSeek | 726点数解答 | 2026-01-13 12:31:37)61
- HTML与JS代码纠错:轻松获取含星期的本地时间(字节豆包 | 284点数解答 | 2024-08-06 13:24:39)292