用于纯HTTP GET和安全数据的安全数据序列化POST通讯

时间:2010-02-01 10:40:24

标签: java http encoding http-post http-get

我正在使用客户端的浏览器提交HTTP请求。 对于报告生成,securityToken以POST形式提交,对于报告下载,用户浏览器需要提交相同的令牌,这次使用GET。

您建议对实际代表加密数据的securityToken使用什么编码。

我已经尝试过BASE64,但这失败了,因为standard可以包含“+”字符,该字符在HTTP GET中被转换为''(空格)。

然后我尝试了URL编码,但这失败了,因为对于HTTP POST,诸如%3d的内容在没有翻译的情况下传输,但是当浏览器执行HTTP GET时,数据%3d 被转换为'='。

您建议使用什么编码,以便通过HTTP POST& amp; GET没有数据被误解。

环境是Java,Tomcat。

谢谢你, 格言。

2 个答案:

答案 0 :(得分:2)

十六进制字符串。

Apache commons-codec有一个Hex类,提供此功能。

它看起来像这样:     http://youraddress.com/context/servlet?param=ac7432be432b21

答案 1 :(得分:1)

好吧,你可以保留Base64并使用这个解决方案: Code for decoding/encoding a modified base64 URL