博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webservice的接口协议(HTTPClient 、RestTemplate HttpURLConnection)
阅读量:5795 次
发布时间:2019-06-18

本文共 1525 字,大约阅读时间需要 5 分钟。

HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源。 HTTPClient提供的主要功能:1、实现了所有HTTP的方法(GET、POST、等PUT、HEAD); 2、支持自动转向; 3、支持HTTPS协议; 4、支持代理服务器等。使用HttpClient需要以下6个步骤:创建HttpClient的实例创建某种连接方法的实例,GetMethod/PostMethod。在 GetMethod/PostMethod的构造函数中传入待连接的地址调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例读response释放连接。无论执行方法是否成功,都必须释放连接对得到后的内容进行处理

  

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法, 能够大大提高客户端的编写效率。调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求, 可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方式。ClientHttpRequestFactory接口主要提供了两种实现方式, 一种是SimpleClientHttpRequestFactory,使用J2SE提供的方式(既java.net包提供的方式)创建底层的Http请求连接, 还有一种方式是使用HttpComponentsClientHttpRequestFactory方式,底层使用HttpClient访问远程的Http服务,使用HttpClient可以配置连接池和证书等信息

  

URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection。另外一个重要的类是URL, 通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例。每个HttpURLConnection实例都可用于生成单个请求, 但是其他实例可以透明地共享连接到HTTP服务器的基础网络。请求后在HttpURLConnection的InputStream或OutputStream上调用close()方法可以释放与此实例关联的网络资源, 但对共享的持久连接没有任何影响。如果在调用disconnect()时持久连接空闲,则可能关闭基础套接字。任何网络连接都需要经过socket才能连接,HttpURLConnection不需要设置socket, 所以,HttpURLConnection并不是底层的连接,而是在底层连接上的一个请求。 这就是为什么HttpURLConneciton只是一个抽象类,自身不能被实例化的原因。 HttpURLConnection只能通过URL.openConnection()方法创建具体的实例。虽然底层的网络连接可以被多个HttpURLConnection实例共享,但每一个HttpURLConnection实例只能发送一个请求。请求结束之后,应该调用HttpURLConnection实例的InputStream或OutputStream的close()方法以释放请求的网络资源,不过这种方式对于持久化连接没用。对于持久化连接,得用disconnect()方法关闭底层连接的socket。

  

转载于:https://www.cnblogs.com/fengli9998/p/8057932.html

你可能感兴趣的文章
WPF控件TextBlock中文字自动换行
查看>>
centos7 中搭建gitlab
查看>>
『MXNet』第八弹_数据处理API_下_Image IO专题
查看>>
openstack provider self-service network subnet 创建
查看>>
python 获取视频文件的大小,时长等
查看>>
Android内存优化(一)Dalvik虚拟机和ART虚拟机对比
查看>>
表驱动方法(Table-Driven Methods)
查看>>
微信小程序开发初体验
查看>>
支付清结算之渠道路由
查看>>
三、新人成才之路《获得幸福的秘诀:幸福观照法 工作篇》
查看>>
Cocos Creator 按钮音效封装重写
查看>>
javanio2
查看>>
230. Kth Smallest Element in a BST
查看>>
常见的几种异常类型Exception
查看>>
软件工程的本质是管理复杂性
查看>>
Redis(7)-----初识Redis-----客户端对Redis集群的使用方法
查看>>
Centos7:Failed to start LSB: Bring up/down networking
查看>>
小程序中模板的使用
查看>>
chrome启动参数之
查看>>
MySql(十八):MySql架构设计——高可用设计之 MySQL 监控
查看>>