httpclient

ASP.NET Core Blazor 初探之 Blazor WebAssembly

故事扮演 提交于 2020-08-12 17:02:32
原文: ASP.NET Core Blazor 初探之 Blazor WebAssembly 最近Blazor热度很高,传说马上就要发布正式版了,做为微软脑残粉,赶紧也来凑个热闹,学习一下。 Blazor Blazor是微软在ASP.NET Core框架下开发的一种全新的Web开发框架。Blazor利用WebAssembly使得开发者可以抛开JavaScript而使用优雅的C#来开发web单页应用。微软利用WebAssembly在浏览器里实现了一个.NET Runtime,任何.NET STANDARD 2.1的代码都可以在浏览器上运行,真的是屌炸了。Blazor强化了Razor模板引擎,并且借鉴了当前热门前端框架的优点,比如双向绑定技术,组件化,使前端开发敏捷高效。如果你对NG,VUE等框架熟悉那么很容易找到其中的共通点。 Blazor WebAssembly Blazor 技术又分两种: Blazor WebAssembly Blazor Server Blazor WebAssembly 是真正的SPA,页面的渲染在前端实现,可以实现真正的前后端分离设计。而Blazor Server可以认为是前者的服务端渲染版本,它使用SignalR实现了客户端的实时通讯,它的计算跟渲染都在服务端处理。本次咱先研究WebAssembly技术,因为我觉得它的应用前景可能更适合一般项目

解决okhttp无法重用连接的问题

旧城冷巷雨未停 提交于 2020-08-12 04:52:17
解决okhttp无法重用连接的问题 最近在一个程序中使用okhttp调用http接口。开始时一切正常,但是测试运行一段时间后,okhttp就会报告recv失败。同时在调用端机器上,netstat显示很多套接字是TIMEWAIT状态。原来每次调用接口,okhttp都建立了一个新连接。而被调用的服务器在连接超过一定数量后会拒绝服务。 最初的想法是用连接池降低连接数。 OkHttpClient httpClient = new OkHttpClient .Builder() .connectionPool(new ConnectionPool(5, 20, TimeUnit .SECONDS)) .build(); 可是运行一段时间后,又出现了recv失败和大量的TIMEWAIT。连接池方法无效。为什么会这样呢?上网搜索一番,发现StackOverflow上有人提到,如果Request或Response的头部包含Connection: close,okhttp会关闭连接。下断点调试,果然服务器返回了Connection: close。okhttp的CallServerInterceptor在收到应答后,直接关闭了连接。 要怎么处理这种情况呢?直观的想法是用拦截器拦截应答,覆盖http头。 OkHttpClient httpClient = new OkHttpClient

ts 分享

馋奶兔 提交于 2020-08-12 00:52:28
主要内容: Typescirpt 背景(快) 用webpack 搭建一个ts环境(慢) ts基础(快) ts 进阶(慢) 装饰器(慢) ts在 vue项目中使用 typescript 缘起 什么是typescript 为什么要用ts ts的现状和未来 ts的ROI 主要内容 ts基础 ts 工程 强类型语言 弱类型语言 静态类型语言和动态类型语言 用webpack手动搭建一个ts环境 ### - npm i typescript -g - npm list --depth=0 ### 初始化 - npm init -y - npm i typescript -g // 全局安装,可以在任何地方使用ts编译器,tsc - tsc --init - tsc ### webpack - npm i webpack webpack-cli webpack-dev-server -D - > build - npm i ts-loader typescript HtmlWebpackPlugin --D - HtmlWebpackPlugin 通过一个模板,帮助我们生成网站的首页,而且把输出文件自动切到这个文件中 - npm i webpack-merge@4.2.1 -D ### - 修改npm脚本 - 入口 main - start - "start": "webpack-dev

SpringMVC实现浏览器端大文件分块上传

强颜欢笑 提交于 2020-08-11 22:16:53
前言:因自己负责的项目(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

简单服务器端Blazor Cookie身份验证的演示

血红的双手。 提交于 2020-08-11 19:45:58
原文: 简单服务器端Blazor Cookie身份验证的演示 为了演示身份验证如何在服务器端 Blazor 应用程序中工作,我们将把身份验证简化为最基本的元素。 我们将简单地设置一个 cookie,然后读取应用程序中的 cookie。 应用程序身份验证 大多数商业 web 应用程序都要求用户登录到应用程序中。 用户输入他们的用户名和密码,对照成员资格数据库进行检查。 一旦通过身份验证,该应用程序即可识别用户,并且现在可以安全地传递内容。 理解了服务器端 Blazor 应用程序的身份验证过程,我们就可以实现一个满足我们需要的身份验证和成员资格管理系统(例如,一个允许用户创建和管理其用户帐户的系统)。 注意:此示例代码不会检查是否有人使用了合法的用户名和密码! 您将需要添加正确的代码进行检查。 这段代码只是对授权用户的过程的演示。 创建应用程序 打开Visual Studio 2019。 创建没有身份验证的 Blazor 服务器应用程序。 添加Nuget软件包 在解决方案资源管理器中,右键单击项目名称并选择 Manage NuGet Packages。 添加对以下库的引用: Microsoft.AspNetCore.Authorization Microsoft.AspNetCore.Http Microsoft.AspNetCore.Identity 另外还有 Microsoft

解决: java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient

前提是你 提交于 2020-08-11 17:24:47
解决: java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient 当你运行服务器时,报出以上错误解决方案: 最近项目中要求在注册中写一个短信验证,然后我使用javaServlet+jsp+jquery.ajax等技术完成了 但是在运行过程中出了一个异常,这个异常的错误我寻找了一上午。发现了以下几种解决方案 由于短信验证需要导入 commons-logging-1.1.1.jar commons-httpclient-3.1.jar commons-codec-1.4.jar 等jar包 所以错误肯定是围绕以上jar包出现的 第一: 编译能通过,代码应该没问题,那就很可能是依赖的jar包没有打包到运行环境。可以这样试试,项目上右键、属性,然后看图,把报错的类所在的包打上勾 第二: 缺少httpclient 包。 检查有没有把 jar 包放在 WEB-INF 的 lib 目录下。 正常引用jar包,应该可以看到这个类的。 1、先做检查这个jar包是否被引用; 2、删除发布,重新发布再试下; 来源: oschina 链接: https://my.oschina.net/u

OSGi 系列(三)之 bundle 详解

一笑奈何 提交于 2020-08-11 03:12:33
OSGi 系列(三)之 bundle 详解 1. 什么是 bundle bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且 jar 包的物理边界也同时是运行时逻辑模块的封装边界。 2. MANIFEST.MF 规范 位置:META-NF/MANIFEST.MF 文件格式 属性声明的一般格式是 name: value 一行不超过 72 个字符,下一行则由单个空格字符开始 3. bundle 常用标识符 标识符 说明 Bundle-Category 描述用逗号分隔的分类名称 Bundle-Activator 启动和停止 bundle 的类名称 Bundle-Classpath 定义用逗号分隔的路径,包含的内容有 JAR 文件和包含类和资源的目录(bundle内部) .点号代表 JAR 文件的根目录,同时也是默认的 Bundle-Copyright 描述 bundle 的版权信息 Bundle-Description 对 bundle 的描述信息 Bundle-Localization 描述 bundle 的本地文件地址,默认值是 OSGI-INF/l10n/bundle Bundle-ManifestVers on Bundle-Name 定义了一个具有可读性的名字来标识 bundle。应该是一个简短易读没有空格的名

HttpClient的异步调用,你造?

江枫思渺然 提交于 2020-08-10 18:02:01
**一、前言 ** HttpClient提供了两种I/O模型:经典的java阻塞I/O模型和基于Java NIO的异步非阻塞事件驱动I/O模型。 Java中的阻塞I/O是一种高效、便捷的I/O模型,非常适合并发连接数量相对适中的高性能应用程序。只要并发连接的数量在1000个以下并且连接大多忙于传输数据,阻塞I/O模型就可以提供最佳的数据吞吐量性能。然而,对于连接大部分时间保持空闲的应用程序,上下文切换的开销可能会变得很大,这时非阻塞I/O模型可能会提供更好的替代方案。 异步I/O模型可能更适合于比较看重资源高效利用、系统可伸缩性、以及可以同时支持更多HTTP连接的场景。 **二、HttpClient中的Future ** 在HttpClient官网Tutorial的高级话题中,我们可以发现其提供了用于异步执行的FutureRequestExec 来源: oschina 链接: https://my.oschina.net/u/4259369/blog/4315286

netcore苹果登陆后端验证Sign In With Apple

二次信任 提交于 2020-08-10 09:27:01
  2020年4月之后,上架App Store得应用必须集成apple账号得登录。   近期博主刚好配合前端IOS集成apple登录,网上找了不少文章教程,发现基本都是网页集成登录或者是java代码,比较少纯后端net验证,期间也走了不少弯路,在这分享给大家实现思路和需要得注意事项。   文章开始前先说明一下此文环境为netcore3.1环境代码编写,IOS相关配置和文章请参考文末链接。   整体思路为:前端调用苹果接口获取到userID和authorizationCode,后端通过authorizationCode调用苹果接口验证,若检验成功会返回相关信息;   以下为apple官方接口文档说明: https://developer.apple.com/documentation/sign_in_with_apple/generate_and_validate_tokens   根据文档可知,调用授权码验证需要传递6个参数,其中3个必填 client_id , client_secret 和 grant_type 。    client_id 和 client_secret 为apple验证请求方是否合法, client_secret 得生成也本文得重点讲解。    grant_type 我理解为操作方式,固定为验证授权码 authorization_code 和刷新token

reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response解决方案

試著忘記壹切 提交于 2020-08-10 08:35:16
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://lovnx.blog.csdn.net/article/details/107900585 一、背景 可能大家在使用Spring Cloud Gateway构建微服务网关的时候,过五关斩六将,Reactor没能难倒我们,链路追踪没能难倒我们,最后在上线之后发现许多奇妙的问题,这些奇妙的问题还无从下手,比如这个堆栈,深入使用过SCG的人一定不会陌生: reactor . netty . http . client . PrematureCloseException : Connection prematurely closed BEFORE response Suppressed : reactor . core . publisher . FluxOnAssembly$OnAssemblyException : 类似的还有: Connection prematurely closed DURING response 。。。等等 百度了一圈,鲜有人提供解决方案,有条件的Google了一把,跟着官方调整几个参数,有用没用也不得而知,最后反正就不了了之。 二、如何找答案 去SCG官方Issue中查找一番,还不少,(这里插一句,遇到问题可以先找前人的Issue