如何访问带有验证(Authorization)的url,并且返回数据
Posted ryan97
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何访问带有验证(Authorization)的url,并且返回数据相关的知识,希望对你有一定的参考价值。
实习上班领导让我实现一个接口,传输json格式的数据到另外一个系统然后返回结果。接口实现倒是很顺利,结果最后post却遇到了一个坑。
例如:我要post json格式数据到http://username:password@ip地址:端口号/xxxxxxxxx
问题情况:
使用postman把我要传输的json数据填入,返回成功。(原以为能提早完成任务)
然后将项目部署到服务器却报错,上实际运行返回:
1. Need username or password
2. 响应码:401 msg:Unauthorized
解决方法:
不能直接在url中使用username:password@,postman会自动配置Authorization的信息产生成功的假象,实则要在代码中单独设置header传送username和password的值
//username:password替换成正确的账号密码,并使用base64进行加密,将加密的字节信息转化为string类型,encoding--->token String encoding = DatatypeConverter.printBase64Binary("username:password".getBytes("UTF-8"));
我用的是Hutool中的HttpUtil.post(),直接按照链式变成规范后面加上addHeader("Authorization", "Basic " +encoding)。
以上是关于如何访问带有验证(Authorization)的url,并且返回数据的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security:Authorization 授权
使用restTemplate发送带有身份验证标头的GET请求
NET问答: 如何集中化统一验证 Authorization