如何访问带有验证(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

计算机网络里面Password验证和AAA验证区别是啥?

svn 验证位置失败 Authorization failed

如何使用带有 Flutter 的 BloC 访问登录时获得的身份验证令牌