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

专业网站建设服务北京所有做招聘类网站建站公司

专业网站建设服务,北京所有做招聘类网站建站公司,微信开发者文档小程序,手机网站列表页源码一、介绍 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/936972/

相关文章:

  • 做网站有的浏览器怎么做网站网站赚钱
  • 织梦 做网站 教程百度登录个人中心官网
  • ftp怎么修改网站wordpress分享积分
  • 营销策划方案的步骤西安关键词优化软件
  • 南宁自己的网站移动互联网技术学什么
  • 2017湖北建设教育协会网站自己接单做网站
  • 定制网站建设制作h5网站要多久
  • 泰安中呼网站建设有限公司 概况个人网站的设计与实现参考文献
  • 圣诞节网站怎么做怎么获取网站的图片
  • 想找个人做网站音乐网站建设教程视频教程
  • 网站收录一键提交阿里巴巴做网站多少钱
  • 怎么做网站投放广告商务网站建设实训报告
  • 服装代销的网站源码国内电子商务网站有哪些
  • qq空间怎么做网站做企业平台的网站有哪些
  • 网站的优缺点wordpress手机适配模板中文
  • 福州网站建设H5广告公司简介简短
  • 网站404页面的作用app开发郑州
  • 亚马逊中国网站建设目标网站建设的策划
  • 林州网站建设服务徐州网站建设
  • 如何检测网站死链景德镇网站建设哪家好
  • 旅游网站开发目标天津专业做网站公司
  • 名者观看网站快手小程序
  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度