当前位置: 首页 > news >正文

南昌互联网网站开发wordpress 分享按钮插件

南昌互联网网站开发,wordpress 分享按钮插件,wordpress留言版,招商外包公司排名一、介绍 HttpClient 是Apache Jakarta Common 下的子项目#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包#xff0c;并且它支持 HTTP 协议最新的版本和建议。 我们可以通过这个HttpClient工具#xff0c;在java代码中去构造和发送ht…一、介绍 HttpClient 是Apache Jakarta Common 下的子项目可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包并且它支持 HTTP 协议最新的版本和建议。 我们可以通过这个HttpClient工具在java代码中去构造和发送http请求 了解http http的长短连接 要搞清楚编程语言层面http client的使用就得先对http协议有所了解。 你应该知道http的transfer layer传输层其实是tcp协议而tcp协议最关键的就是一次连接的建立到释放需要经过三次握手四次挥手。 那么如果你连续访问同一个服务器n次就得建立n次连接显然很耗费时间用户使用体验不好也没有必要。 于是从HTTP1.1协议开始有了所谓的长连接(persistent connection)而且客户端默认行为就是长连接(需要服务端也打开长连接才能实际生效)有了长连接那么原来 一次连接一次请求一次响应现在可以一次连接(一次请求一次响应)*nn1。 tips注意连接和请求是两个不同的概念。 这样子对于连续n次请求同一服务器的场景来说就比原来减少了n-1次连接也就是减少了3次握手4次挥手)*(n-1)的时间。 当然在实际使用中这里的请求次数n是有limitation的即使你没有手动设置其本身肯定也有一个默认值。 除了请求数量上有限制外一般还有时间上的限制这里的时间限制包括连接的空闲时间和最大存活时间这两个概念是不同的。上面我使用了连续请求这个词语连续是个很抽象的概念得使用量级去定义它所以timeout就表明了两次连接时间间隔得在timeout内才算作连续。超过这个时间长连接会被释放掉。 一般在请求头或者响应头通过这个字段定义 Keep-Alive: timeout5, max1000 这表明长连接的空闲时间为5s时间单位是秒。 tips在软件设计中边界思想是很重要的。 那客户端这一头是如何控制开启长短连接的呢 请求头的这个字段Connection。 Connection: close-禁止长连接 Connection: keep-alive-使用长连接 官网原话是: HTTP/1.1 defines the “close” connection option for the sender to signal that the connection will be closed after completion of the response. 由于默认行为是长连接了(相当于默认值keep-alive)所以如果不想要长连接那么需要显示指明这个请求头 字段的值为close。 有时候要小心一点的就是服务端没有打开长连接的支持(默认打开)虽然一般情况下不会有人这么做但是原理还是要知道的。 还有一点就是连接的关闭可以分为client主动关闭还是server端关闭并不一定总是server端关闭的连接。 连接池概念 在apache http client中连接是由连接管理对象来管理有两种类型。 一种是Simple connection manager(对应的是asicHttpClientConnectionManager.java 一种就是Pooling connection manager(对应的是PoolingHttpClientConnectionManager.java)。 从名字上看就知道一个是一个http client对应一个connection一个是一个http client对应一个connection pool既然是pool那么connection的数量就可能是n。 tipshttp client和connection是两个不同的概念。 需要注意的是如果没有明确的指定connnection manager通过HttpClientBuilder.java创建http client的话默认会为你创建的是Pooling connection manager。 根据实际需要选择一般我都偏向于将http client作为单例使用。 了解http 来自https://zhuanlan.zhihu.com/p/341584129 二、使用 HttpClient的核心API HttpClientHttp客户端对象类型使用该类型对象可发起Http请求。HttpClients可认为是构建器可创建HttpClient对象。CloseableHttpClient实现类实现了HttpClient接口。HttpGetGet方式请求类型。HttpPostPost方式请求类型。 发送请求步骤 创建httpclient 对象创建 httpclient 请求对象【实例】 如果需要发送GET请求创建HttpGet对象如果需要发送POST请求创建HttpPost对象。如果需要发送请求参数可调用setEntity(HttpEntity entity)方法来设置请求参数 调用httpclient 的execute方法发送请求 三、代码案例 采用的是阿里云的sdk-oss包含了httpclient dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactId /dependency GET /*** 测试通过httpclient发送GET方式的请求*/Testpublic void testGET() throws Exception{//创建httpclient对象CloseableHttpClient httpClient HttpClients.createDefault();//创建请求对象HttpGet httpGet new HttpGet(http://localhost:8080/user/shop/status);//发送请求接受响应结果CloseableHttpResponse response httpClient.execute(httpGet);//获取服务端返回的状态码int statusCode response.getStatusLine().getStatusCode();System.out.println(服务端返回的状态码为 statusCode);HttpEntity entity response.getEntity();String body EntityUtils.toString(entity);System.out.println(服务端返回的数据为 body);//关闭资源response.close();httpClient.close();} POST /*** 测试通过httpclient发送POST方式的请求*/Testpublic void testPOST() throws Exception{// 创建httpclient对象CloseableHttpClient httpClient HttpClients.createDefault();//创建请求对象HttpPost httpPost new HttpPost(http://localhost:8080/admin/employee/login);JSONObject jsonObject new JSONObject();jsonObject.put(username,admin);jsonObject.put(password,123456);StringEntity entity new StringEntity(jsonObject.toString());//指定请求编码方式entity.setContentEncoding(utf-8);//数据格式entity.setContentType(application/json);httpPost.setEntity(entity);//发送请求CloseableHttpResponse response httpClient.execute(httpPost);//解析返回结果int statusCode response.getStatusLine().getStatusCode();System.out.println(响应码为 statusCode);HttpEntity entity1 response.getEntity();String body EntityUtils.toString(entity1);System.out.println(响应数据为 body);//关闭资源response.close();httpClient.close();}
http://www.w-s-a.com/news/389931/

相关文章:

  • 10g空间网站做视频网站网站建设找超速云
  • 一元购网站怎么做企业网站源码cms
  • 域名不变 网站改版临沂企业网站建站模板
  • 天河网站建设信科网络外包公司和公司直招哪个好
  • 网站制作哈尔滨聊天系统源码
  • 网站建设朋友圈素材青白江建设网站
  • 红酒网站设计软件设计文档
  • 如何创建网站目录网站申请支付宝接口
  • 网站做区块链然后往里面投钱品牌设计公司收费标准
  • 2022互联网+创新创业项目呼和浩特企业网站排名优化
  • 电子商务类网站建设山西自助建站系统怎么用
  • odoo做网站网站设置专栏有什么好处
  • 局域网内个人网站建设查询企业的网站有哪些
  • 网站建设属于技术开发吗网页制作团队
  • 做家常菜的网站哪个好哪个网站做图片外链
  • 眼科医院网站设计怎么做6深圳宝安是什么风险等级
  • 网站制作容易吗logo免费生成网站
  • 建设厅官方网站下载专区网络托管公司
  • 祥云平台官方网站网线制作实验原理
  • 把网站做成app的软件下载国外做兼职的网站有哪些
  • 网站建设 海豚弯专业的网站开发服务商
  • 那个网站有免费模板中国家装公司十大排名
  • 中铁建设集团有限公司门户网站余杭区建设规划局网站
  • 天猫网站建设的目标是什么做网站常见问题模板
  • 做php网站需要什么软件天津建设网官方网站
  • 南漳网站开发上海网站推广方法
  • 深圳seo网站大连旅顺房价
  • dede网站 地图什么做有没有做黑市网站
  • 做网站参考文献域名如何做网站
  • 怎么选择网站开发英文网站建设用途