java中URLconnection_Java中,使用URLConnection类从URL读取资源 - Break易站

在Java中的Java.net.HttpURLConnection类和示例中,我们了解了如何创建URL对象并获取Internet上任何资源的信息。但是,获取状态信息几乎不是真实世界应用程序的真正动机。要检索信息,处理信息并将结果发送回服务器,或者只是显示从服务器检索到的所需信息,这是我们的目标。例如,考虑一个小应用程序,它向用户请求电影名称,然后返回电影的“imdb”评级或返回与该电影相关的所有链接。所有这些都可以使用URLConnection类来实现。

什么是URLConnection类

URLConnection是一个抽象类,其子类构成用户应用程序与Web上任何资源之间的链接。我们可以使用它来读取/写入URL对象引用的任何资源。

主要有两个子类扩展了URLConnection类 -

HttpURLConnection:如果我们连接到任何使用“http”作为协议的url,则使用HttpURLConnection类。

JarURLConnection:但是,如果我们尝试在Web上建立与jar文件的连接,则使用JarURLConnection。

一旦建立连接并且我们有一个URLConnection对象,我们就可以使用它来读取或写入或获取有关页面/文件上次修改的时间,内容长度等的进一步信息。

URLConnection类的重要方法

URLConnection openConnection():打开与指定URL的连接。

Object getContent():检索URLConnection的内容。

Map getHeaderFields():返回包含http标头中各种标题字段值的映射。

getContentEncoding():返回content-encoding头字段的值。

getContentLength():返回内容标题字段的长度。

getDate():在header字段中返回date的值。

getHeaderField(int i):返回标头的第 i 个索引的值。

getHeaderField(String field):返回标题中名为“field”的字段的值

OutputStream getOutputStream():将输出流返回到此连接。

InputStream getInputStream():将输入流返回到此打开的连接。

setAllowUserInteraction(boolean):设置为true表示用户可以与页面进行交互。默认值为true。

setDefaultUseCaches(boolean):将useCache字段的默认值设置为给定值。

setDoInput(boolean):设置是否允许用户接受输入。

setDoOutput(boolean):设置是否允许用户在页面上写入。默认值为false,因为大多数url不允许写入。

让我们看一个示例程序,它使用上面的方法显示标题字段,并将整个页面的源代码打印到控制台窗口。

//Java Program  to illustrate reading and writing

// in URLConnection Class

import java.io.*;

import java.net.*;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class URLConnectionclass

{

public static void main(String[] args)

{

try

{

URL url = new URL("https://www.breakyizhan.com");

//open the connection to the above URL.

URLConnection urlcon = url.openConnection();

//Executing the below line would print the value of

// Allow User Interaction field.

// System.out.println(urlcon.getAllowUserInteraction());

//Executing the below line would print

// the value of Content Type field.

// System.out.println(urlcon.getContentType());

//Executing the below line would print the value

// of URL of the given connection.

// System.out.println(urlcon.getURL());

//Executing the below line would

// print the value of Do Input field.

// System.out.println(urlcon.getDoInput());

//Executing the below line would

// print the value of Do Output field.

// System.out.println(urlcon.getDoOutput());

//Executing the below line would

// print the value of Last Modified field.

// System.out.println(new Date(urlcon.getLastModified()));

//Executing the below line would

// print the value of Content Encoding field.

// System.out.println(urlcon.getContentEncoding());

//To get a map of all the fields of http header

Map> header = urlcon.getHeaderFields();

//print all the fields along with their value.

for (Map.Entry> mp : header.entrySet())

{

System.out.print(mp.getKey() + " : ");

System.out.println(mp.getValue().toString());

}

System.out.println();

System.out.println("Complete source code of the URL is-");

System.out.println("---------------------------------");

//get the inputstream of the open connection.

BufferedReader br = new BufferedReader(new InputStreamReader

(urlcon.getInputStream()));

String i;

//print the source code line by line.

while ((i = br.readLine()) != null)

{

System.out.println(i);

}

}

catch (Exception e)

{

System.out.println(e);

}

}

}

输出:

Keep-Alive : [timeout=5, max=100]

null : [HTTP/1.1 200 OK]

Server : [Apache/2.4.18 (Ubuntu)]

Connection : [Keep-Alive]

Last-Modified : [Wed, 16 Nov 2016 06:49:55 GMT]

Date : [Wed, 16 Nov 2016 10:58:34 GMT]

Accept-Ranges : [bytes]

Cache-Control : [max-age=3]

ETag : ["10866-541657b07e4d7"]

Vary : [Accept-Encoding]

Expires : [Wed, 16 Nov 2016 10:58:37 GMT]

Content-Length : [67686]

Content-Type :

Complete source code of the URL is-

--------------------------------------------------

...source code of the page...

OpenClaw:基于Frida的Android应用动态分析与自动化测试平台实战指南 动态代码插桩技术是移动安全分析和应用行为监控的核心手段,它通过在目标进程运行时注入代码,实现对函数调用、内存读写等操作的实时监控与干预。其原理是通过Hook机制拦截并修改程序执行流,从而在不修改源码的情况下,深度洞察应用逻辑。这项技术在安全研究、逆向工程和自动化测试领域具有极高价值,能有效发现隐蔽漏洞、分析恶意软件行为及验证应用合规性。Frida作为主流的动态插桩框架,提供了强大的底层API,但在复杂任务管理和工程化应用上存在门槛。OpenClaw正是为解决这一痛点而生,它将Frida的能力封装为Web化图 阅读详情

相关推荐

深入分析Glide源码

前言 最近研究了一下Glide源码,发现很多地方写的真的很精妙,值得细细品味。Glide 功能丰富,图片三级缓存、可深度定制(继承AppGlideModule、LibraryGlideModule实现更多功能)、修改网络请求库、支持多种输入输出资源的转换(例如输入Stream,输出bitmap等等)、生命周期的管理 虽然下面分析完了,整体的流程,但是想要真正领会设计思想,还需要好好沉淀一下。文章篇幅比较长,但逻辑并不复杂 一、基本使用流程 Glide最基本的使用流程就是下面这行代码,其它所有扩展的额外功能都

薛瑄的博客 6253

Java获取文件ContentType

Java获取文件ContentType,源码如下: package com.oysept; import java.io.File; import java.io.IOException; import java.net.FileNameMap; import java.net.URLConnection; import java.nio.file.Files; import java.ni...

p812438109的专栏 2万+

Java基础中级进阶篇六之网络编程(反射、网络编程)

} };} // 注意:仅用于开发/测试环境!生产环境必须验证证书!} } };} // 注意:仅用于开发/测试环境!生产环境必须验证证书!} } };} // 注意:仅用于开发/测试环境!生产环境必须验证证书!} } };} // 注意:仅用于开发/测试环境!生产环境必须验证证书!} } };} // 注意:仅用于开发/测试环境!生产环境必须验证证书!

萧瑟余晖的博客 108

java URLConnection中的 Content-Type 与 ajax 的contentType

java 设置  URL realUrl = new URL(url);             // 打开和URL之间的连接             URLConnection conn = realUrl.openConnection();                         conn.setRequestProperty("Connection", "Keep

javahepeng的专栏 8242

URLConnectionJava网络编程)

URLConnection 打开URLConnection 读取服务器的数据 读取首部 配置连接 配置客户端的请求HTTP首部 向服务器写入数据 内容处理器 猜测MIME内容型 HttpURLConnectionURLConnection URLConnection是一个抽象,表示指向URL指定资源的活动连接。 URLConnection对与服务器的交互提供了比URL更多的控制。通过URLCo

rename_to的博客 2675

Java-URLConnection介绍

Java中的URLConnection是用于建立与URL之间的连接的抽象。它是Java标准库中的一部分,位于java.net包下。URLConnection可以用于与服务器建立HTTP、HTTPS或FTP连接,并通过输入流和输出流与服务器进行数据交互。它提供了一组用于设置请求属性、获取响应属性、发送请求和接收响应的方法。

架构师之路。。 1942

java url 设置超时_URLConnection的连接、超时、关闭用法总结

Java中可以使用HttpURLConnection来请求WEB资源。1、URL请求的别分为二,GET与POST请求。二者的区别在于:a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。2、URLConnection的对象问题URL url = ne...

weixin_29545089的博客 2652

Java图片导出Excel实战:Apache POI核心API、内存优化与生产避坑指南

Java后端开发中,数据导出是报表系统的核心功能,而将图片嵌入Excel则是常见的工程需求。其技术原理主要依赖于操作Excel文件的底层库,通过将图片二进制数据与单元格锚点模型结合,实现可视化数据的精准定位与渲染。从技术价值看,这不仅提升了报表的信息承载力和可读性,更是自动化办公和数据可视化的重要实践。在实际应用场景中,如员工花名册、商品清单、动态报表等,开发者常面临图片清晰度、文件体积和并发性能的挑战。本文聚焦于使用Apache POI这一主流库,深入解析其ClientAnchor锚点机制,并针对Out

weixin_30615767的博客 651

java url编码_Java 网络编程:必知必会的 URLURLConnection

java.net.URL URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号。java.net.URLConnection 则代表了应用程序和 URL 之间的通信链接,可用于读取和写入此 URL 引用的资源URLConnection 看起来只是比 URL 多了一个 Connection,它们之间的关系也仅限于此吗?01、什么是 URL为了搞清楚...

weixin_39714307的博客 404

HttpConnection在网络中读取流的使用例子

package com.beitie.interfaceInvoke; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /** * @author betieforever * @description 描述 * @date 2021/11/4 */ pu.

u014104653的博客 950

JAVA网络编程个人笔记 第七章 URLConnection

JAVA网络编程个人笔记 第七章 URLConnectionURLConnection背景客户端协议处理框架的主要URL的用法(回顾)代码实现URLConnection的用法方法详细介绍代码展示代码示例2代码示例3客户程序判断响应正文的型HttpURLConnection URLConnection 背景 在如何处理浏览器与服务器之间的通信问题上,将其分解为两个部分 处理协议部分:负责进行连接、交换首部等,处理请求资源的所有协议花销 处理内容部分:只处理实际数据,接收去掉所有首部之后的原始输入,转

mcyuuji的博客 1295

用HttpUrlConnection解析读取数据

new Thread() {             public void run() {                 setWebsiteInfo("http://172.27.0.200/exam/index.php?m=Index&a=home");             };         }.start();     }     protected void

liya_xin的博客 3033

Java网络编程——第七章 URLConnection

URLConnection 这是一个抽象,与URL相比,主要有以下不同点      1、对与服务器的通信提供了更多的控制,如检查、设置首部,使用put post等http方法      2、URLConnectionJava协议处理器(protocol hanler)的一部分,该部分还包括URLStreamHandler,将协议的细节和数据处理分开      3、URLConnec

WYCPhoenix的博客 1252

详细分析Java中的HttpURLConnection基本知识(附Demo)

HttpURLConnectionJava 提供的用于发送 HTTP 请求的 它的作用是建立与服务器的连接,发送 HTTP 请求并获取服务器的响应,HttpURLConnectionJava 标准库中的一部分,用于实现 HTTP 协议的客户端 作用: 建立与服务器的连接 发送 HTTP 请求并获取服务器的响应 支持 GET、POST、PUT、DELETE 等 HTTP 请求方法 提供了一系列方法,用于设置请求头、写入请求体、获取响应码、获取响应体等操作

码农研究僧的博客 4280

URLConnection(一)

URLConnection是一个抽象,表示指向URL指定资源的活动连接。URLConnection有两个不同但相关的用途。首先,与URL相比,它对服务器(特别是HTTP服务器)的交互提供了更多控制。URLConnection可以检查服务器发送的首部,并相应地做出响应。它可以设置客户端请求中使用的首部字段,最后URLConnection可以用POST、PUT和其他HTTP请求方法向服务器发回数据。

qq_43456605的博客 3003

关于 URL,说几个你不知道的点!

java.net.URL URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号。java.net.URLConnecti...

Java极客技术 660

通过HttpURLConnection调用文件服务,实现文件下载

** 前端请求A服务controller,A服务通过HttpURLConnection方式请求到B服务,B服务再将文件返回给A服务,A服务用文件流的方式写入下载 ** 一、A服务通过HttpURLConnection调用B服务接口获取File文件 参数介绍: (1)urlStr:调用服务地址:http://xxx:8080/xxx/xxx?fileId = xxxx (2)downloadDir:文件下载路径 public static File fileDownload(String urlStr, St

m0_57410363的博客 3512

Java通过网络url直接读取文件内容

【代码】Java通过网络url直接读取文件内容。

qq_40599377的博客 2790
上一篇: java 编写线程公共类_廖雪峰Java11多线程编程-4线程工具类-1ThreadLocal
下一篇: java map 遍历 大数量_Java中遍历大容量map的正确方法 | 学步园
addytan
博客等级 码龄8年 35粉丝 84原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值