一.前言 在我们开发当中经常需要向特定URL地址发送Http请求操作,在.net core 中对httpClient使用不当会造成灾难性的问题,这篇文章主要来分享.net core中通过IHttpClientFactory 工厂来使用HttpClient的正确打开方式. 二.HttpClient使用中的那些坑 2.1 错误使用 using(var client = new HttpClient()) 我们可以先来做一个简单的测试,代码如下: public async Task<string>…
一.前言 前面分享了 .net core HttpClient 使用之掉坑解析(一),今天来分享自定义消息处理HttpMessageHandler和PrimaryHttpMessageHandler 的使用场景和区别 二.源代码阅读 2.1 核心消息管道模型图 先贴上一张核心MessageHandler 管道模型的流程图,图如下: HttpClient 中的HttpMessageHandler 负责主要核心的业务,HttpMessageHandler 是由MessageHandler 链表结构组…
开门见山地说一下问题的原因:调用 web api 时请求头中多了双引号,请求体中少了双引号. 腾讯云提供的对象存储(COS)C# SDK 是基于 .NET Framework 用 WebRequest 实现的,我们直接将这个实现迁移到 .NET Core 是可以正常调用,但后来我们基于 HttpClient 实现,调用 web api 时总是返回 "ERROR_CGI_PARAM_NO_SUCH_OP" 错误. 用 Wireshark 抓包后发现,基于 WebRequest 的实现的请…
前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程. Docker 从入门到掉坑 Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务 不知道大家在初次使用docker的时候是否有遇到这种场景,每次部署微服务都是需要执行docker run xxx,docker kill xxx 等命令来操作容器.假设说一个系统中依赖了多个docker容器,那么对于每个docker容器的部署岂不是都需…
某天,有同学反馈后台管理系统出现静态资源无法加载的问题. 复现如下: 进入首页. 点击侧边栏某个子功能,静态资源可正常访问到. 等待10分钟左右,点击侧边栏其他子功能,无法访问到静态资源. 查看控制台,发现输出 Uncaught SyntaxError: Unexpected token < 一开始检查了一下是不是服务器上面没有这个静态资源文件,随机找了一台服(注意,从这里开始掉坑里了),发现文件是存在: 接着怀疑是静态文件因为某种原因,会不时变动文件名,但是测试了一下,半小时内文件未曾发生变动…
http是我们最常见的客户端/服务端传输协议,在golang中,默认的net/http包有一些坑位,需要调整以获得更加性能. 在golang程序中,我也遇到因为不合理使用 http client导致的程序崩溃问题. 坑:1:默认的HttpClient 默认的HttpClient不包含请求超时时间,如果你使用http.Get(url)或者&Client{}, 这将会使用http.DefaultClient,这个结构体内no timeout. 假如发出请求的服务端API有问题:没有及时响应httpc…
本文由AlvinZH所写,欢迎学习引用,如有错误或更优化方法,欢迎讨论,联系方式QQ:1329284394. 前言 动态规划(Dynamic Programming),是一个神奇的东西.DP只能意会,不可言传.大家在做DP题的时候一定要理清思路,一般是先不管空间,毕竟以空间换时间,大多数题都是先卡时间再卡空间的. DP具备的两个要素:最优子结构和子问题重叠,见<算法导论>225页.简单来讲就是问题是一个由多决策产生最优值的最优化问题. 最优化原理:其子问题的最优会导致全局最优,具有最优子结构的…
Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器.但是docker本身和虚拟机还是有较为明显的出入的.我大致归纳了一下,可以总结为以下几点: docker自身也有着很多的优点,关于它的优点,可以总结为以下几项: 安装docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用. 首先我们需要移除旧…
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker容器部署一些常见的基础环境,例如MySQL.Redis这些,那么这篇文章里面我会介绍一些关于SpringBoot如何打包运行到docker容器中. 先介绍一下需要准备的基础环境内容: 1.一台centos机器 docker运行在centos7上,要求系统为64位,Linux内核版本为3.10以上 d…
在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作,在接下来的这篇文章开始,我们将开始进入对于k8s模块的学习 不熟悉的可以先回顾之前的章节,Docker教程系列文章将归置到菜单栏:连载中..->Docker一栏. 在进行对k8s的学习之前,我们首先来进行几个知识点的回顾: 什么是容器? docker自身具有哪些特点? 什么是容器? 通俗易懂地来讲,容器是一系列相互隔离的进程.它们自身具备有轻量操作系统层面的虚拟化技术,每个容器都有着自己的PID,User,UTS,…