webservice的接口协议(HTTPClient 、RestTemplate HttpURLConnection)
2017-12-18 15:40
447 查看
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。
相关文章推荐
- 【REST】基于RESTful服务端的客户端实现(HttpClient、RestTemplate、HttpURLConnection)
- restful接口客户端和服务端开发,HttpURLConnection,HttpClient,post ,get方式调用
- Java HttpURLConnection模拟请求Rest接口解决中文乱码问题
- Java模拟http上传文件请求(HttpURLConnection,HttpClient4.4,RestTemplate)
- Java HttpURLConnection模拟请求Rest接口解决中文乱码问题
- 使用 HTTP 协议访问网络的两种方式:HttpURLConnection 和 HttpClient
- 关于网络二_HTTP协议访问网络:HttpUrlConnection、HttpClient
- 利用HttpURLConnection和WebClient发布REST风格的WebService客户端(解决超时问题)
- HttpURLConnection调用rest webservice
- HttpClient与HttpURLConnection
- Android--HttpURLConnection及HttpClient选择
- Android访问网络,使用HttpURLConnection还是HttpClient?
- Android网络连接之HttpURLConnection和HttpClient
- android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据
- HttpURLConnection,HttpClient,Volley
- httpClient访问http的rest接口
- 简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源
- HttpURLConnection与HttpClient区别及联系
- Android HttpURLConnection和HttpClient获取网络内容
- okhttp,retrofit,volley,HttpClient,HttpUrlConnection之间的关系