前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >url转码 java_javaurlencode转码

url转码 java_javaurlencode转码

作者头像
全栈程序员站长
发布2022-11-17 17:56:39
3.9K0
发布2022-11-17 17:56:39
举报

什么是URL转码

不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。

尤其是当传递的url是经过Base64加密或者RSA加密后的,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。

url特殊符号及对应的编码:

符号

url中的含义

编码

+

URL 中+号表示空格

+

空格

URL中的空格可以用+号或者编码

%20

/

分隔目录和子目录

%2F

?

分隔实际的URL和参数

%3F

%

指定特殊字符

%

#

表示书签

%23

&

URL中指定的参数间的分隔符

%26

=

URL中指定参数的值

%3D

URLEncode和URLDecode

接受参数案例tranIndex

@RestController public class TranController { // 接受客户端参数 @RequestMapping(“/tranIndex”) public String tranIndex(String name) { System.out.println(“name:” + name); return name; } }

客户端访问结果

url转码 java_javaurlencode转码
url转码 java_javaurlencode转码

传入+参数变为了空格。

解决办法:将+变为%2B

url转码 java_javaurlencode转码
url转码 java_javaurlencode转码

Java代码处理转码

URLEncoder.encode和decode

String encode = URLEncoder.encode(“1+1”, “UTF-8”); String decode = URLDecoder.decode(encode, “UTF-8”); System.out.println(“encode:” + encode + “,decode:” + decode);

Http接口参数编码处理

String url = “http://127.0.0.1:8080/tranIndex?”; // 参数转码 String strParam = “name=” + URLEncoder.encode(“1+1”, “utf-8”); String newUrl = url + strParam; String result = HttpClientUtils.httpGet(newUrl); System.out.println(“result:” + result);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/219059.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是URL转码
  • URLEncode和URLDecode
  • Java代码处理转码
    • URLEncoder.encode和decode
      • Http接口参数编码处理
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档