httpclient

java通过http请求调用接口 (get ,post,上传文件)

假如想象 提交于 2020-04-07 15:16:48
package com.xx.util ; import com.alibaba.fastjson.JSON ; import com.hcr.aurora.vo.ParamVo1 ; import org.apache.http.Consts ; import org.apache.http.HttpEntity ; import org.apache.http.NameValuePair ; import org.apache.http.client.ClientProtocolException ; import org.apache.http.client.config.RequestConfig ; import org.apache.http.client.entity.UrlEncodedFormEntity ; import org.apache.http.client.methods.CloseableHttpResponse ; import org.apache.http.client.methods.HttpGet ; import org.apache.http.client.methods.HttpPost ; import org.apache.http.entity.ContentType ; import org.apache.http

nginx版本低,但是又不能关闭怎么办?一招教你平滑升级

我们两清 提交于 2020-04-06 18:47:56
1.查看现有的 nginx 编译参数 我这里以1.16.0为例升级到1.16.1(编译安装的才可以) [root@localhost ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.16.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=

10张流程图+部署图,讲透单点登录原理与简单实现!

北城余情 提交于 2020-04-06 12:23:28
   20 大进阶架构专题每日送达      一、单系统登录机制   1、http无状态协议   web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系      但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既然http协议无状态,那就让服务器和浏览器共同维护一个状态吧!这就是会话机制   2、会话机制   浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续第二次和第三次请求中带上会话id,服务器取得请求中的会话id就知道是不是同一个用户了,这个过程用下图说明,后续请求与第一次请求产生了关联      服务器在内存中保存会话对象,浏览器怎么保存会话id呢?你可能会想到两种方式   请求参数   cookie   将会话id作为每一个请求的参数,服务器接收请求自然能解析参数获得会话id,并借此判断是否来自同一会话,很明显,这种方式不靠谱。那就浏览器自己来维护这个会话id吧

ASP.NET Core教程:在ASP.NET Core中使用HttPClient调用WebService

故事扮演 提交于 2020-04-06 11:07:58
一、前言 在以前的一篇文章中,曾经讲述过如何在ASP.NET Core中调用WebService。但是那种方式是通过静态引用的方式去调用的,如果是在生产环境中,肯定不能使用这种方式去调用,幸运的是微软提供了HttpClient,我们可以通过HttpClient去调用WebService。 二、创建WebService 我们使用VS创建一个WebService,增加一个PostTest方法,方法代码如下 using System.Web.Services; namespace WebServiceDemo { /// <summary> /// WebTest 的摘要说明 /// </summary> [WebService(Namespace = " http://tempuri.org/ " )] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem( false )] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 // [System.Web.Script.Services.ScriptService] public class WebTest : System.Web.Services

RestTemplate踩坑

冷暖自知 提交于 2020-04-05 23:53:44
池化 + SSL 的 RestTemplate : public RestTemplate init() throws Exception{ SSLConnectionSocketFactory connectionSocketFactory = initSSL(jks_path, jks_pwd, jks_path, jks_pwd); PoolingHttpClientConnectionManager poolingConnectionManager = new PoolingHttpClientConnectionManager( RegistryBuilder.<ConnectionSocketFactory>create().register("https", connectionSocketFactory) .build()); int availableProcessors = Runtime.getRuntime().availableProcessors(); poolingConnectionManager.setMaxTotal(2 * availableProcessors + 3); // 连接池最大连接数 poolingConnectionManager.setDefaultMaxPerRoute(2 * availableProcessors); /

后端开发使用pycharm的技巧

五迷三道 提交于 2020-04-05 23:17:09
1、使用说明 首先说明,本文所使用的功能为pycharm专业版所支持,其他版本如社区版,教育版,则不一定支持。 作为一名后端开发,我猜你的桌面上一定打开着一系列的软件,用作开发调试工具,比如navicat数据库连接工具,postman接口调试工具,pycharm代码编写IDE,以及其他一些工具。 今天,我就介绍一下pycharm中你可能还不知道的一些功能,让你的IDE、postman、navicat融为一体,从此不再需要频繁切屏。 2、database 这个功能本人觉得可以完全替代navicat,那么这个database功能在哪里呢。 就在pycharm的右上角竖排的两个图标的其中一个,在这里可以添加数据库的连接。 可以看到,支持非常多的数据库种类,基本上主流的数据库都可以连接,这里以MySQL为例。 基本就和navicat一样,输入你要连接的数据库的连接名,host,port,user,password,数据库名,然后点击test connection就可以测试连接,第一次测试可能需要下载数据库连接驱动,下载就可以,测试成功就可以成功连接到你需要连接的数据库。 这里我新建一个数据库作为演示,可以看到,连接成功后可以显示数据库中所有的表,表字段,字段类型,字段注释,很齐全,打开表后,数据展示也很清晰,也可以直接像navicat那样直接对表数据进行可视化的增删改查操作

IDEA Gradle配置与使用

痴心易碎 提交于 2020-04-05 22:00:32
1.安装Gradle,并添加环境变量。 https://www.cnblogs.com/NyanKoSenSei/p/11458953.html 2.在IDEA中设置Gradle: 3.选中项目中的.gradle文件,右键选择"Import Gradle Project"。 4.接下来会弹出一个界面,Import Module From Gradle。 注意:Create separate module per source set这个不要勾选,不然一个module会分成多个部分。 5.成功导入依赖后,可以通过IDEA最右边的侧栏进行快捷操作。 点击刷新按钮,可以重新导入所有的依赖。 点击+号,并选中相关的.gradle文件,可以导入新的module。 6.在打开项目时,如果module还缺少某些依赖,可以直接在对应的类里面按alt+enter自动导入。 也可以点击File,打开Project Structure里面,点击Modules,点击dependencies,点击+号,导入jar包或者其他的module,如下所示: 7.在.gradle文件中添加新依赖,dir表示的是文件名,include中为jar包,如下: dependencies { compile fileTree(dir: trd, include: 'guava*.jar') compile fileTree

Sending POST request to get OAuth Acess Token

扶醉桌前 提交于 2020-03-26 07:20:12
问题 Google API has documents on implementing OAuth 2.0. However I am quite confused at how your supposed to obtain the access token. The documentation says that I must send a POST request in the following format POST /o/oauth2/token HTTP/1.1 Host: accounts.google.com Content-Type: application/x-www-form-urlencoded code=4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu& client_id=8819981768.apps.googleusercontent.com& client_secret={client_secret}& redirect_uri=https://oauth2-login-demo.appspot.com/code& grant_type

URL.openStream() and HttpResponse.getEntity().getContent() downloading different files of Inputstream

梦想的初衷 提交于 2020-03-25 13:41:29
问题 Using URL class in java.net package. Method 1 String sourceUrl = "https://thumbor.thedailymeal.com/P09kUdGYdBReFSJne1qjVDIphDM=//https://videodam-assets.thedailymeal.com/filestore/5/3/0/2_37ec80e4c368169/5302scr_43fcce37a98877f.jpg%3Fv=2020-03-16+21%3A06%3A42&version=0"; java.net.URL url = new URL(sourceUrl); InputStream inputStream = url.openStream(); Files.copy(inputStream, Paths.get("/Users/test/rr.png"), StandardCopyOption.REPLACE_EXISTING); Using Apache's HttpClient class. Method 2