Java网络编程之URLConnecton

一、URLConnection简介

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

  ①创建一个URL对象;

  ②通过URL对象的openConnection方法创建URLConnection对象;  

  ③通过URLConnection对象提供的方法可以设置参数和一般请求属性。常用的请求属性设置方式有以下几种:

  public void setRequestProperty(String key,String value)设置指定的请求关键字对应的值

  public void setDoInput(boolean doinput)设置是否使用URL连接进行输入,默认值为true

  public void setDoOutput(boolean dooutput)设置是否使用URL连接进行输出,默认值为false,如果设置为true,就可以获取一个字节输出流,用于将数据发送到服务器

  public void setUseCaches(boolean usecaches)设置此连接是否使用任何可用的缓存,默认值为true

  ④调用URLConnection对象的connect方法连接到该远程资源

  ⑤连接到服务器后,就可以查询头部信息了,查询头部信息常用方法有以下几种:

  public String getHeaderField(String name)返回指定头字段的值

  public Map<String,List<String>>getHeaderFields()返回头字段的不可修改的Map

  public String getContentType()返回content-type头字段的值

  public String getContentEncoding()返回content-encoding的值

  ⑥获取输入流访问资源数据。使用getInputStream 方法,获取一个字节输入流,以便读取资源信息

  ⑦获取输入流并写数据

二、URLConnection数据结构

  HttpURLConnection是URLConnection类的子类, URLConnection与HttpURLConnection都是抽象类,无法直接实例化对象。其对象主要通过URL的openConnection()方法获得

三、URLConnection方法摘要

构造方法摘要
protected URLConnection(URL url)
          构造一个到指定 URL 的 URL 连接。
方法摘要
 void addRequestProperty(String key, String value)

          添加由键值对指定的一般请求属性。
abstract
 void
connect()

          打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接)。
 boolean getAllowUserInteraction()

          返回此对象的 allowUserInteraction 字段的值。
 int getConnectTimeout()

          返回连接超时设置。
 Object getContent()

          获取此 URL 连接的内容。
 Object getContent(Class[] classes)
          获取此
URL 连接的内容。
 String getContentEncoding()

          返回 content-encoding 头字段的值。
 int getContentLength()

          返回 content-length 头字段的值。
 String getContentType()

          返回 content-type 头字段的值。
 long getDate()

          返回 date 头字段的值。
static boolean getDefaultAllowUserInteraction()

          返回 allowUserInteraction 字段的默认值。
static String getDefaultRequestProperty(String key)

          已过时。 应在获得 URLConnection 的适当实例后使用特定 getRequestProperty
方法的实例。
 boolean getDefaultUseCaches()

          返回 URLConnectionuseCaches
标志的默认值。
 boolean getDoInput()

          返回此 URLConnectiondoInput
标志的值。
 boolean getDoOutput()

          返回此 URLConnectiondoOutput
标志的值。
 long getExpiration()

          返回 expires 头字段的值。
static FileNameMap getFileNameMap()

          从数据文件加载文件名映射(一个 mimetable)。
 String getHeaderField(int n)

          返回第 n 个头字段的值。
 String getHeaderField(String name)

          返回指定的头字段的值。
 long getHeaderFieldDate(String name,
long Default)

          返回解析为日期的指定字段的值。
 int getHeaderFieldInt(String name,
int Default)

          返回解析为数字的指定字段的值。
 String getHeaderFieldKey(int n)

          返回第 n 个头字段的键。
 Map<String,List<String>> getHeaderFields()

          返回头字段的不可修改的 Map。
 long getIfModifiedSince()

          返回此对象的 ifModifiedSince 字段的值。
 InputStream getInputStream()

          返回从此打开的连接读取的输入流。
 long getLastModified()

          返回 last-modified 头字段的值。
 OutputStream getOutputStream()

          返回写入到此连接的输出流。
 Permission getPermission()

          返回一个权限对象,其代表建立此对象表示的连接所需的权限。
 int getReadTimeout()

          返回读入超时设置。
 Map<String,List<String>> getRequestProperties()

          返回一个由此连接的一般请求属性构成的不可修改的 Map。
 String getRequestProperty(String key)

          返回此连接指定的一般请求属性值。
 URL getURL()

          返回此 URLConnectionURL 字段的值。
 boolean getUseCaches()

          返回此 URLConnectionuseCaches
字段的值。
static String guessContentTypeFromName(String fname)
          根据 URL
的指定 "file" 部分尝试确定对象的内容类型。
static String guessContentTypeFromStream(InputStream is)

          根据输入流的开始字符尝试确定输入流的类型。
 void setAllowUserInteraction(boolean allowuserinteraction)

          设置此 URLConnectionallowUserInteraction
字段的值。
 void setConnectTimeout(int timeout)

          设置一个指定的超时值(以毫秒为单位),该值将在打开到此 URLConnection 引用的资源的通信链接时使用。
static void setContentHandlerFactory(ContentHandlerFactory fac)

          设置应用程序的 ContentHandlerFactory
static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)

          将未来的所有 URLConnection 对象的
allowUserInteraction 字段的默认值设置为指定的值。
static void setDefaultRequestProperty(String key, String value)

          已过时。 应在获得 URLConnection 的适当实例后使用特定 setRequestProperty
方法的实例。调用此方法没有任何作用。
 void setDefaultUseCaches(boolean defaultusecaches)

          将 useCaches 字段的默认值设置为指定的值。
 void setDoInput(boolean doinput)

          将此 URLConnectiondoInput
字段的值设置为指定的值。
 void setDoOutput(boolean dooutput)

          将此 URLConnectiondoOutput
字段的值设置为指定的值。
static void setFileNameMap(FileNameMap map)

          设置 FileNameMap。
 void setIfModifiedSince(long ifmodifiedsince)

          将此 URLConnectionifModifiedSince
字段的值设置为指定的值。
 void setReadTimeout(int timeout)

          将读超时设置为指定的超时值,以毫秒为单位。
 void setRequestProperty(String key, String value)

          设置一般请求属性。
 void setUseCaches(boolean usecaches)

          将此 URLConnectionuseCaches
字段的值设置为指定的值。
 String toString()

          返回此 URL 连接的 String 表示形式。

参考文章:

  http://blog.csdn.net/im_xiao/article/details/51125201

如果,您对我的这篇博文有什么疑问,欢迎评论区留言,大家互相讨论学习。
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博文感兴趣,可以关注我的后续博客,我是【AlbertRui】。

转载请注明出处和链接地址,欢迎转载,谢谢!

Java网络编程之URLConnection的更多相关文章

  1. Java网络编程之URL和URI

    Java网络编程之URL与URI 一.URL与URI简介 URI = Universal Resource Identifier 统一资源标志符 URL = Universal Resource Lo ...

  2. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载.   ...

  3. Java网络编程之UDP

    Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...

  4. Java网络编程之InetAddress浅析

    Java网络编程之InetAddress浅析 一.InetAddress综述 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetA ...

  5. Java网络编程之TCP

    Java网络编程之TCP ​ TCP主要需要两个类:Socket和ServerSocket,Socket是客户端连接服务器时创建,参数需要指定服务器的ip和端口,ServerSocket是服务器端创建 ...

  6. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...

  7. Java网络编程之InetAddress和URL

    在Java中提供了专门的网络开发程序包---java.net,java的网络编程提供了两种通信协议:TCP(传输控制协议)和UDP(数据报协议). 一.IP(Internet Protocol) 与I ...

  8. 3.Java网络编程之IP

    前面两篇博文我们已经简单了解了IP.端口.协议以及两种参考模型,我们现在重新从程序角度来看下这个参考模型. 如果我们从事的是Web网站开发,那么我们应该知道HTML是一种超文本标记语言 (Hyper ...

  9. java网络编程之UDP通讯

    详细介绍了java中的网络通信机制,尤其是UDP协议,通过对UDP的基本使用进行举例说明如何使用UDP进行数据的发送接收,并举了两个小demo说明UDP的使用注意事项. UDP协议原理图解: UDP协 ...

随机推荐

  1. C# MATLAB混编(二)

    在上一篇博客中说到按照参考教程操作之后依然有两个问题. 问题1:当我在matlab中输入mbuild -setup后    报错 解:这是因为VS与Matlab存在版本匹配问题,理论上来说vs版本最好 ...

  2. thinkphp项目阿里云ECS服务器部署

    [日记]thinkphp项目阿里云ECS服务器部署   项目本地开发告一段落.准备上传到服务器上测试 技术组成 thinkphp+mysql+阿里ECS  代码管理方式git 一.阿里ECS服务器配置 ...

  3. 林大妈的JavaScript基础知识(二):编写JavaScript代码前的一些简单工作

    在介绍JavaScript语法前,我们需要知道,学习语法必须要多利用手敲代码来巩固记忆.因此,由于JavaScript的特性,它不能像C++和Java一样独立地编译及运行,我们需要在调试运行JavaS ...

  4. 常用css选择器以及选择器的权重值介绍

    一.选择器的权重值 选择器权重值比较: !important infinity   无穷大 行间样式                   1000 id                        ...

  5. Zabbix利用Windows性能监视器监控各项资源指标

    zabbix自带的windows监控模板并没有监控windows cpu使用率的监控 在cmd命令输入perfmon 打开后默认就一项CPU占用的监控,下面以添加硬盘空闲时间做示例 1:监控图形上面右 ...

  6. Unity工程无代码化

     目的 Unity默认是将代码放入工程,这样容易带来一些问题.1. 代码和资源混合,职能之间容易互相误改.2. 当代码量膨胀到一定程度后,代码的编译时间长到无法忍受.新版的unity支持通过asmde ...

  7. Java虚拟机(一)-Java内存区域

    通过看深入理解java虚拟机这本书,大致总结一些笔记,或者提出一些问题,希望大家深入交流学习,第一次写博客,大家多多支持 Java虚拟机对于很多Java开发人员每天都在用,但是大部分人初学者对这些并不 ...

  8. cs231n官方note笔记

    本文记录官方note中比较新颖和有价值的观点(从反向传播开始) 一 反向传播 1 “反向传播是一个优美的局部过程.在整个计算线路图中,每个门单元都会得到一些输入并立即计算两个东西:1. 这个门的输出值 ...

  9. 维恩贝特面试JAVA后台开发

    1 自我介绍 2 链表和数组区别(数组空间连续,且有下标,查找快,但是增删数据效率不高,链表的空间不连续,查找起来慢,但是对数据的增删效率高,链表可以随意扩大,数组不能) 3 sort方法的实现 (A ...

  10. Netbeans courier new 乱码问题

    Netbeans 默认的字体 monospaced,显示英文的单引号及字体非常的不好看,在网上查了下资料可以变得很好看. 1.仍然保持默认字体 monospaced 2.在Netbeans 的安装目  ...