JDK URLConnection示例

2024-09-04 21:58
文章标签 jdk 示例 urlconnection

本文主要是介绍JDK URLConnection示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码参考Core Java II Chapter 3 Networking - Making URL Connections

发现在GET的时候,不加connect()调用也行,网上有各种讨论,但暂未找到较好的答案。

package com.example.http;import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;public class Main {public static void main(String[] args) {try {testHttpGet();testHttpPost();} catch (IOException e) {e.printStackTrace();}}private static void testHttpGet() throws IOException {String urlString = null;urlString = "http://www.baidu.com";URL url = null;url = new URL(urlString);URLConnection connection = url.openConnection();//connection.connect();debugHeaderFields(connection);debugSomeFunctions(connection);Scanner in = null;try {in = new Scanner(connection.getInputStream());} catch (IOException e) {e.printStackTrace();return;}// print first 30 lines of contentsfor (int n = 1; in.hasNextLine() && n <= 30; n++) {System.out.println(in.nextLine());}if (in.hasNextLine()) System.out.println(". . .");in.close();}private static void debugSomeFunctions(URLConnection connection) {System.out.println("Some convenience functions:");System.out.println("----------");System.out.println("getContentType: " + connection.getContentType());System.out.println("getContentLength: " + connection.getContentLength());System.out.println("getContentEncoding: " + connection.getContentEncoding());System.out.println("getDate: " + connection.getDate());System.out.println("getExpiration: " + connection.getExpiration());System.out.println("getLastModifed: " + connection.getLastModified());System.out.println("----------");}private static void debugHeaderFields(URLConnection connection) {Map<String, List<String>> headers = connection.getHeaderFields();System.out.println("Header fields:");for (Map.Entry<String, List<String>> entry : headers.entrySet()) {String key = entry.getKey();for (String value : entry.getValue()) {System.out.println(key + ": " + value);}}}private static void testHttpPost() throws IOException {String urlString = null;urlString = "http://...";URL url = new URL(urlString);URLConnection connection = url.openConnection();connection.setDoOutput(true);Map<String, String> nameValuePairs = new HashMap<String, String>();nameValuePairs.put("key1", "value1");nameValuePairs.put("key2", "value2");//additional parameters ...PrintWriter out = new PrintWriter(connection.getOutputStream());boolean first = true;for (Map.Entry<String, String> pair : nameValuePairs.entrySet()){if (first) first = false;else out.print('&');String name = pair.getKey();String value = pair.getValue();out.print(name);out.print('=');out.print(URLEncoder.encode(value, "UTF-8"));}out.close();connection.connect();debugHeaderFields(connection);debugSomeFunctions(connection);Scanner in = null;StringBuilder response = new StringBuilder();in = new Scanner(connection.getInputStream());while (in.hasNextLine()) {response.append(in.nextLine());response.append("\n");}in.close();System.out.println("Response:");System.out.println(response.toString());}}

这篇关于JDK URLConnection示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1137139

相关文章

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S