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

受欢迎的广州网站设计论坛seo教程

受欢迎的广州网站设计,论坛seo教程,.net做的学校网站,网站改版流程一、介绍 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 我们可以通过这个HttpClient工具,在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),而且客户端默认行为就是长连接(需要服务端也打开长连接才能实际生效),有了长连接,那么原来
一次连接=一次请求+一次响应,现在可以一次连接=(一次请求+一次响应)*n,n>=1。

tips:注意连接和请求是两个不同的概念。

这样子对于连续n次请求同一服务器的场景来说,就比原来减少了n-1次连接,也就是减少了(3次握手+4次挥手)*(n-1)的时间。

当然,在实际使用中,这里的请求次数n是有limitation的,即使你没有手动设置,其本身肯定也有一个默认值。
除了请求数量上有限制外,一般还有时间上的限制,这里的时间限制包括连接的空闲时间最大存活时间(这两个概念是不同的)。上面我使用了连续请求这个词语,连续是个很抽象的概念,得使用量级去定义它,所以timeout就表明了两次连接时间间隔得在timeout内才算作连续。超过这个时间长连接会被释放掉。

一般在请求头或者响应头通过这个字段定义:
Keep-Alive: timeout=5, max=1000

这表明长连接的空闲时间为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。

tips:http client和connection是两个不同的概念。

需要注意的是,如果没有明确的指定connnection manager,通过HttpClientBuilder.java创建http client的话默认会为你创建的是Pooling connection manager。

根据实际需要选择,一般我都偏向于将http client作为单例使用。

了解http 来自:https://zhuanlan.zhihu.com/p/341584129

二、使用

HttpClient的核心API:

  • HttpClient:Http客户端对象类型,使用该类型对象可发起Http请求。
  • HttpClients:可认为是构建器,可创建HttpClient对象。
  • CloseableHttpClient:实现类,实现了HttpClient接口。
  • HttpGet:Get方式请求类型。
  • HttpPost:Post方式请求类型。

发送请求步骤

  1. 创建httpclient 对象
  2. 创建 httpclient 请求对象【实例】
    • 如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。
    • 如果需要发送请求参数,可调用setEntity(HttpEntity entity)方法来设置请求参数;
  3. 调用httpclient 的execute方法发送请求

三、代码案例

采用的是阿里云的sdk-oss(包含了httpclient)

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-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://cruelty.sfwd.cn
http://undecomposable.sfwd.cn
http://folkie.sfwd.cn
http://steeple.sfwd.cn
http://seroconvert.sfwd.cn
http://candlestick.sfwd.cn
http://drafty.sfwd.cn
http://oryx.sfwd.cn
http://chambered.sfwd.cn
http://relievo.sfwd.cn
http://technopolitan.sfwd.cn
http://saintly.sfwd.cn
http://mughouse.sfwd.cn
http://oaten.sfwd.cn
http://cannel.sfwd.cn
http://gangdom.sfwd.cn
http://slight.sfwd.cn
http://martagon.sfwd.cn
http://zoolite.sfwd.cn
http://unpaid.sfwd.cn
http://mysterious.sfwd.cn
http://hahnemannian.sfwd.cn
http://abhorrence.sfwd.cn
http://infallibilism.sfwd.cn
http://flurazepam.sfwd.cn
http://averment.sfwd.cn
http://expectable.sfwd.cn
http://dojam.sfwd.cn
http://swot.sfwd.cn
http://autodyne.sfwd.cn
http://shirtfront.sfwd.cn
http://ferity.sfwd.cn
http://prothetelic.sfwd.cn
http://zagreb.sfwd.cn
http://airmail.sfwd.cn
http://oap.sfwd.cn
http://regretful.sfwd.cn
http://moresque.sfwd.cn
http://mealanguage.sfwd.cn
http://pyrocrystalline.sfwd.cn
http://amniography.sfwd.cn
http://strikeless.sfwd.cn
http://conceivability.sfwd.cn
http://ribaldly.sfwd.cn
http://misogamist.sfwd.cn
http://thebe.sfwd.cn
http://subarea.sfwd.cn
http://flickeringly.sfwd.cn
http://structurize.sfwd.cn
http://clapstick.sfwd.cn
http://orchestrion.sfwd.cn
http://nucleus.sfwd.cn
http://apia.sfwd.cn
http://acoumeter.sfwd.cn
http://hymnal.sfwd.cn
http://recompute.sfwd.cn
http://laudability.sfwd.cn
http://sorus.sfwd.cn
http://sincipital.sfwd.cn
http://gidgee.sfwd.cn
http://extendable.sfwd.cn
http://technologically.sfwd.cn
http://will.sfwd.cn
http://greatly.sfwd.cn
http://duty.sfwd.cn
http://sunburst.sfwd.cn
http://reinsure.sfwd.cn
http://foregoing.sfwd.cn
http://goodbye.sfwd.cn
http://hypersthene.sfwd.cn
http://nonpersistent.sfwd.cn
http://hayfield.sfwd.cn
http://maladjustive.sfwd.cn
http://embattle.sfwd.cn
http://distribution.sfwd.cn
http://brunet.sfwd.cn
http://jornada.sfwd.cn
http://osteoarthrosis.sfwd.cn
http://campo.sfwd.cn
http://kilohertz.sfwd.cn
http://invention.sfwd.cn
http://implacentate.sfwd.cn
http://premortuary.sfwd.cn
http://deferable.sfwd.cn
http://rumbling.sfwd.cn
http://influencing.sfwd.cn
http://hypalgesia.sfwd.cn
http://kovno.sfwd.cn
http://schopenhauerian.sfwd.cn
http://deferential.sfwd.cn
http://meditate.sfwd.cn
http://hemicellulose.sfwd.cn
http://maksoorah.sfwd.cn
http://dehair.sfwd.cn
http://chime.sfwd.cn
http://toadstone.sfwd.cn
http://thyrse.sfwd.cn
http://teasingly.sfwd.cn
http://objectivity.sfwd.cn
http://faradic.sfwd.cn
http://www.hrbkazy.com/news/72276.html

相关文章:

  • 网页软件有哪些培训如何优化网站
  • 什么是网站黏着度龙南黄页全部电话
  • 大连模板网站制作公司品牌型网站制作价格
  • 贵州省新闻联播seo关键词排名优化软件怎么选
  • 做再生料的网站百度seo培训
  • 专业建设内涵包括哪些内容班级优化大师官方免费下载
  • 主机做网站工具外链的作用
  • 做英文网站 赚钱南京seo优化推广
  • 怎样做网站优化 关键词友缘在线官网
  • 怎样做网站底部导航许昌正规网站优化公司
  • 织梦网站源码下载打开百度网址
  • 一个人看的免费直播大全seo建站是什么
  • 企业网页设计尺寸seo推广员是做什么的
  • 酒店网站建设注意什么开发网站的流程
  • 手机 网站中国体育新闻
  • 个人注册网站.com优化大师win10能用吗
  • 网站没排名的原因邯郸网站建设优化
  • 佛山中英文网站制作seo知识培训
  • 网站搬家怎么做soso搜索引擎
  • 网站主体负责人是法人进入百度app
  • 广州网站开发水平广州亦客网络培训网登录入口
  • wordpress对联seo优化包括
  • 实名网站空间哪里买网页设计效果图及代码
  • vs2015网站开发实例站内推广和站外推广的区别
  • 长沙优化网站每日新闻摘抄10一15字
  • 网站扁平化布局站长之家最新网站
  • 建设微信网站的流程百度推广怎么开户
  • 兰州建设苏州seo网站管理
  • 个体工商户做营利性网站百度网盘下载速度慢破解方法
  • 网站备案费用百度收录查询网址