httpClient模仿Basic Auth
httpClient模仿PostMan的Basic Auth

PostMan的Body如下,咱们下面的HttpClient也模仿该body进行请求

模仿上图的PostMan的httpclient代码调用如下:
@GetMapping("loginTest")
public String httpClientWithBasicAuth() {
String username="myApp";
String password="";
String uri="http://xxxx:xxxx/jwtauthsvr/oauth/token";
Map<String, String> paramMap = new HashMap<>();
paramMap.put("grant_type", "password");
paramMap.put("scope", "webclient");
paramMap.put("username", "Jamie");
paramMap.put("password", "");
String result = "";
try {
// 创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
HttpPost httpPost = new HttpPost(uri);
//添加http头信息
httpPost.addHeader("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((username + ":" + password).getBytes()));
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
paramMap.forEach((k,v)->{
builder.addPart(k, new StringBody(v, ContentType.MULTIPART_FORM_DATA));
});
HttpEntity postEntity = builder.build();
httpPost.setEntity(postEntity);
HttpResponse httpResponse = null;
HttpEntity entity = null;
try {
httpResponse = closeableHttpClient.execute(httpPost);
entity = httpResponse.getEntity();
if( entity != null ){
result = EntityUtils.toString(entity);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 关闭连接
closeableHttpClient.close();
}catch (Exception e) {
e.printStackTrace();
}
return result;
}
httpClient模仿Basic Auth的更多相关文章
- httpclient进行basic auth认证
private HttpClientContext context = HttpClientContext.create(); public void addUserOAuth(String user ...
- java 发送带Basic Auth认证的http post请求
构造http header private static final String URL = "url"; private static final String APP_KEY ...
- java 发送带Basic Auth认证的http post请求实例代码
构造http header private static final String URL = "url"; private static final String APP_KEY ...
- Apache增加Basic Auth
在.htaccess文件中增加 AuthUserFile /var/www/htpasswd/test.htpasswd AuthName EnterPassword AuthType Basic r ...
- Jmeter实现Basic Auth方式登录
背景 在实际测试日常中,产品有两种登录方式,一种是普通登录方式,另一种则是Basic Auth方式登录.两种登录对应着产品中不同的操作,对权限进行了一个划分. Postman登录 使用Postman登 ...
- 使用crypt配置Basic Auth登录认证
简介 Basic Auth用于服务端简单的登录认证,通常使用服务器Nginx.Apache本身即可完成.比如我们要限定某个域名或者页面必须输入用户名.密码才能登录,但又不想使用后端开发语言,此时Bas ...
- iOS AFNetWorking下得Basic Auth认证请求方式
我新入职了一家公司,做了一个项目,服务器的大哥说他采用的是Basic Auth认证请求方式,一般我们用的都是OAuth的认证方式,下面我们就对比一下这两种认证方式 百度百科得到如下 Basic Aut ...
- Basic Auth
开放平台 把网站服务封装成一系列接口供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台.比如一些网站支持QQ登录,那QQ就相当于开放平台,QQ提供了一些OPE ...
- Etcd安全配置之Basic Auth认证
<中小团队落地配置中心详解>文章中我们介绍了如何基于Etcd+Confd构建配置中心,最后提到Etcd的安全问题时说了可以使用账号密码认证以达到安全访问的目的,究竟该如何开启认证以及怎么设 ...
随机推荐
- Boost::pool (1)
POOL 什么是pool 池分配是一种非常快速的内存分配方案,但其使用受到限制.有关池分配的更多信息(也称为简单隔离存储,请参阅 池化概念和简单隔离存储). 我为什么要使用Pool? 使用池可以更好地 ...
- 内核模式构造-Semaphore构造(WaitLock)
internal sealed class SimpleWaitLock : IDisposable { //(信号量)允许多个线程并发访问一个资源 //如果所有线程以只读方式访问资源则是安全的 pr ...
- Tunnel Warfare HDU - 1540 (线段树处理连续区间问题)
During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast a ...
- 【AGC003 E】Sequential operations on Sequence
Description 你有一个长度为 \(n\) 的序列,第 \(i\) 项为 \(i\). 有 \(m\) 次操作,每次操作给定一个 \(x\),你需要将序列无限循环后截取前 \(x\) 项,作为 ...
- qt libusb
https://github.com/Kakadu/Qt_libusb https://github.com/mcvsama/libusbcc/tree/master/src/libusbcc htt ...
- js 深浅拷贝 笔记总结
一.js 数据类型 javaScritp的数据类型有:数值类型.字符串类型.布尔类型.null.undefined.对象(数组.正则表达式.日期.函数),大致分成两种:基本数据类型和引用数据类型, 其 ...
- MySQL 异地 双机房同步之otter
一.背景: 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求, 同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了ott ...
- css3小动画:鼠标hover后text-decoration的动画
实现效果 具体实现 利用css3 ::after或者::before伪元素实现.html代码 <a class="abstract-title" href="/ar ...
- C/C++字符串转换函数;
字符串转数字: char 转 int 函数: atoi wchar 转 int 函数: _wtoi 数字转字符串: std::to_string(): std::to_wsting();
- 【Python之路】特别篇--RabbitMQ
RabbitMQ 解释RabbitMQ,就不得不提到AMQP(Advanced Message Queuing Protocol)协议. AMQP协议是一种基于网络的消息传输协议,它能够在应用或组织之 ...