httpclient

Ionic 中出现 NullInjectorError: No provider for HttpClient 的解决办法

做~自己de王妃 提交于 2020-08-08 19:17:07
1. 在 app.module.ts 中引入模块 import { HttpClientModule } from '@angular/common/http'; 2. 在 @NgModule.imports 中引入它 @NgModule({ ...... imports: [ ...... HttpClientModule, ...... ], ...... }) 来源: oschina 链接: https://my.oschina.net/soho00147/blog/4299052

.NET Core HttpClientFactory+Consul实现服务发现

扶醉桌前 提交于 2020-08-08 16:48:24
前言   上篇文章 .NET Core HttpClient+Consul实现服务发现 提到过,HttpClient存在套接字延迟释放的问题,高并发情况导致端口号被耗尽引起服务器拒绝服务的问题。好在微软意识到了这个问题,从.NET Core 2.1版本开始推出了HttpClientFactory来弥补这个问题。关于更详细的HttpClientFactory介绍可以查看微软官方文档 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-3.1#httpclient-and-lifetime-management 我们了解到想把自定义的HttpMessageHandler注入到HttpClient内部,必须要通过构造函数。接下来我们就慢慢发觉如何给HttpClientFactory使用我们自定义的Handler。 HttpClient的创建   相信大家都已经清楚使用HttpClientFactory从services.AddHttpClient()注入相关类开始,我们就从这里开始入手。先贴上源码地址 HttpClientFactoryServiceCollectionExtensions源码 然后我们大概的看一下我们关注的实现方法,大致如下,代码有删减 ///

tomcat 中close_wait 不释放导致tomcat频繁假死

ぐ巨炮叔叔 提交于 2020-08-07 04:33:16
tomcat 中close_wait 不释放导致tomcat频繁假死 遇到的问题 报错信息 解决方案 遇到的问题 最近自己做了一个小程序项目发现在发布后tomcat 过一段时间后就假死,一开始查询了了用户量发现用户一天登陆3000+以为是用户量的问题,我修改了tomcat 配置,增大了访问量的线程,可是发现到了晚上有挂了,查询线程后发现,连接被close_wait 沾满,且close_wait 不断增加,最后tomcat无法访问 报错信息 解决方案 单从报错信息可以看出是 443 端口的问题,我443 配置了https,我一开始以为是https 的配置,查了文档发现配置没有问题,网上查询说的httpClient 没有关闭 查询了我的代码 ,把没有的close 的httpClient 全部加上close ,发现还是无效,崩溃。继续找解决方案,但是tomcat 抗不住老是爆炸,只能一次次重启中度日,找大神问(这里特别感谢下咕泡学院的Mic老师),大神指导说你的httpClient 没关,可是事实是我关了,但是这时候我截日志的是否发现了一个异常这个异常在项目运行,甚至假死的状态的都不会抛出,但是在关闭tomcat 的时候会抛出,定位到代码 发现是取小程获取openid 的时候socket 问题,但是我httpclient 关闭了,为啥这个连接还保持着,找HttpClient 相关文档

SpringCloud- 第十一篇 Feign+Ribbon

﹥>﹥吖頭↗ 提交于 2020-08-06 05:29:03
1:概述 由于Spring Cloud Feign的客户端负载均衡是通过Spring Cloud Ribbon实现的,所以可以直接通过配置Ribbon客户端的方式来自定义各个服务客户端调用的参数 2:全局配置 ribbon.ConnectTimeout=500 ribbon.ReadTimeOut=5000 3:指定服务配置 userService.ribbon.ConnectTimeout=500 userService.ribbon.ReadTimeout=2000 4:重试机制 userService.ribbon.ConnectTimeout=500 userService.ribbon.ReadTimeout=2000 userService.ribbon.OkToRetryOnAllOperations=true userService.ribbon.MaxAutoRetriesNextServer=2 userService.ribbon.MaxAutoRetries=1 Ribbon的超时与Hystrix的超时是两个概念。一般需要让hystrix的超时时间大于Ribbon的超时时间,否则Hystrix命令超时后,直接熔断,重试机制就没有任何意义了 5:参数绑定 常用绑定参数的方式 @RequestParam 绑定单个请求参数值 @PathVariable

第三十七节:系统证书管理和gRPC基于数字证书的认证和授权

本小妞迷上赌 提交于 2020-08-06 01:21:32
一. 证书管理 1. 如何生成证书 (1). 关于阿里云证书和证书的相关概念  详见:https://www.cnblogs.com/yaopengfei/p/10648151.html (抽时间重新配置一遍) (2). 本地生成测试证书  详见:https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps  这里使用案例9:【New-SelfSignedCertificate -Subject "localhost" -TextExtension @("2.5.29.17={text}DNS=localhost&IPAddress=127.0.0.1&IPAddress=::1")】 2. 本地计算机证书管理 (1).查看计算已有的证书  cmd命令行→输入certmgr→可以查看当前用户下的证书以及受信任的颁发机构 (2).证书导入和添加信任  cmd命令行→输入mmc→进入控制台页面(默认空白)→选中文件中的‘添加/删除管理单元’→将'证书'一项添加进去 导入步骤:  A.以管理员的身份运行powershell,运行证书生成指令【New-SelfSignedCertificate -Subject "ypf" -TextExtension

js WebUploader 分片上传

一个人想着一个人 提交于 2020-08-05 12:14:12
前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。 一. Http协议原理简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。 1.特点: (1)支持客户/服务器模式。 (2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 (3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 (4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 (5

短信接口防恶意攻击策略

懵懂的女人 提交于 2020-08-05 04:46:59
如下是用户页面交互。输入手机号,即可获取验证码。用户体验方面已经超级简单了。 不过,简单是要有成本的。安全控制方面,程序员得琢磨。 在系统安全、信息安全、系统安全防御领域,短信盗刷是老生常谈的话题了。我们公司的系统也经历过至少3次盗刷。每次动辄损失2万~5万条的短信。 近几年,随着qq授权登录、微信授权登录等登录方式的流行,短信盗刷的情况似乎是少了。不过,互联网企业总是习惯要留下用户的手机号的,毕竟这么做非常利于流量获取。 短信验证码登陆,通常的做法是图形验证码。简单实现的话,就是 当用户输入的手机号发生变化时,页面异步请求服务端生成图形验证码的接口,服务端返回图片文件流,页面生成验证码图片。用户输入验证码,然后请求服务端获取验证码的接口。服务端会校验用户输入的验证码是否正确,正确了才会发送短信验证码。 因为图形验证码是通过文件流传输的,所以很难破解。当然,倒是有识别图片的工具,不管怎么说,还是有一定难度的。不识别图片呢?随机生成4位验证码,用撞库的方式来恶搞?显然,命中的几率也很小。就是说,用图形正麻烦的方式,恶意攻击的难度比较大。 我们看12306或其他的互联网网站,动不动让选特定的图形,或滑动拼图,或依次选特定的文字,这种安全性都是相当高的。 据说,阿里的招数更绝!可以记录鼠标在页面的轨迹,进而识别出来是人在操作,而非机器模拟。 所谓安全,安防,说白了,是防君子不防小人的

使用Ocelot、IdentityServer4、Spring Cloud Eureka搭建微服务网关:Step by Step(一)

落爺英雄遲暮 提交于 2020-08-05 04:02:30
网上这部分的文章和资料很多,有一篇非常不错的文章(《 Net Core 基于Ocelot+IdentityServer4+Eureka的搭建高性能网关介绍 》),也介绍了这个内容,我也是参考了其中的某些步骤,一步一步演练下来,感觉.NET Core在微服务生态方面也是越来越成熟,功能也越来越强大。因此,我也撰写记录一下整个步骤,通过Step by Step的形式,加上一些注解,以及对于一些遇到的坑的描述,将整个实践过程记录下来,以便帮到有需要的读者,也为自己的学习做个记录。我不会再在概念性的问题上多费笔墨,比如什么是API网关、Ocelot、IdentityServer4、Eureka又是什么之类的问题,我不会做过多的说明,我会争取用最简单快捷的方式,将相关的实践内容描述清楚,虽然本文的标题后面加了一个“(一)”的字样,代表还会有后续的文章,因为我觉得一篇估计讲不完。 案例场景 在我之前写的《 .NET Core中Ocelot的使用 》系列文章中,我设计了一个场景,同时涉及了两个微服务的RESTful API,当时使用两个微服务,不仅是为了介绍API网关的主要功能,而且还引入了服务发现的内容,因此,使用两个微服务来演示会比较合理。当然,今天我们已经学习过API网关和服务发现的基本知识了,我就进一步将案例场景简化,我们只做一个API:Countries API,在这个API中

基于ElasticSearch7.5.1基本操作(HTTP方式)

China☆狼群 提交于 2020-08-05 02:02:46
依赖 <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> /** * 创建索引 * @throws IOException */ private static void createIdx() throws IOException { String mapping = { "mappings": { "properties": { "user": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" }, "title": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" }, "desc": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" } } } } System.out.println(service.doPut("http://localhost

2019年工作总结

你。 提交于 2020-08-05 01:53:32
  在写这篇博客的时候,因为新冠肺炎疫情影响本人已经在湖北老家隔离一个多月了,当然这一个多月以来心中也是各种滋味,五味杂陈,生活中总是有太多的困难在考验着我们,但总归要去面对,并一步步去把困难踩在脚下,闲暇之余也是该对过去的2019年来做一个系统性的梳理工作了,只有不断去总结才能明得失,然后找到自己的不足,并在新的一年去努力探寻解决方案,最后才能不断取得进步,不辜负光阴,最终实现自己的人生价值。   还是和往常一样,主要是从纯技术上和生活中对过去的一年进行一个细致的总结,2019年是自己来上海的第五个年头,也是自己进行Asp.Net Core进行开发的第二年,这一年对技术和生活上上的理解有了更多的理解,经历过很多东西,感觉也是自己快速成长的阶段,说真的这一年真的也是非常辛苦,无论是业务设计团队、软件开发团队、BA、QA、运维......每一个团队都在为奇瑞的整个售后管理DMS软件系统贡献着自己的力量,从整个系统3家经销商试用,到后面增加到50家,再到最后100家......每一次成倍地增加经销商都是对整个系统并发性的一个巨大的挑战,每一个Sprint迭代都是对整个团队的巨大考验,因为越到后面每一次需求的变更都是对整个系统的一次巨大考验。最后一块报表的开发更考验对整个业务系统的熟练程度的掌控力,这里面遇到过很多的困难,好在整个团队克服了种种困难,最终都很好完成了这一切