起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java实现的URL编码和解码技术

Java实现的URL编码和解码技术

时间:2021-07-29 15:16:06来源:Java开发培训网 作者:Java开发教程网 已有: 名学员访问该课程

前言: Java实现的URL编码和解码技术 Main 方法 public static void main(String[] args) { // TODO Auto-generated method stub String url="https%3A%2F%

Java实现的URL编码和解码技术

Main 方法

public static void main(String[] args) {

// TODO Auto-generated method stub

String url="https%3A%2F%2Fr1---sn-ci5gup-cags.googlevideo.com%2Fvideoplayback%3Fpcm2cms%3Dyes%26mime%3Dvideo%252Fmp4%26pl%3D21%26itag%3D22%26\u0026itag=43\u0026type=video%2Fwebm%3B+codecs%3D%22vp8.0%2C+vorbis%22\u0026quality=medium";

String url2="https://r1---sn-ci5gup-cags.googlevideo.com/videoplayback?pcm2cms=yes&mime=video/mp4&pl=21&itag=22&&itag=43&type=video/webm; codecs=\"vp8.0, vorbis\"&quality=medium";

String decodeURL = decode(url);

System.out.println("Decoded URL: "+decodeURL);

String encodeURL = encode(url2);

System.out.println("Encoded URL2: "+encodeURL);

}

它是如何工作的?

1. url 是一个变量,保存着我们希望解码的已被编码的 URL

2. url2 是保存着我们希望编码的 url 的变量

3. 调用 decode 方法,该方法解码和打印 URL

4. 调用 encode 方法,该方法编码和打印 url2

Encode 方法

public static String encode(String url) {

try {

String encodeURL=URLEncoder.encode( url, "UTF-8" );

return encodeURL;

} catch (UnsupportedEncodingException e) {

return "Issue while encoding" +e.getMessage();

}

}

它是如何工作的

1. 使用名为 URLEncoder 的预定义 Java 类的 encode 方法

2. URLEncoder 类的 encode 方法需要两个参数:

a. 第一个参数定义的是待编码的 URL

b. 第二个参数定义的是使用的编码方案

3. 编码之后,将返回编码后的 URL 结果

public static String decode(String url) {

try {

String prevURL="";

String decodeURL=url;

while(!prevURL.equals(decodeURL))

{

prevURL=decodeURL;

decodeURL=URLDecoder.decode( decodeURL, "UTF-8" );

}

return decodeURL;

} catch (UnsupportedEncodingException e) {

return "Issue while decoding" +e.getMessage();

}

}

Decode 方法

public static String decode(String url){

try {

String prevURL="";

String decodeURL=url;

while(!prevURL.equals(decodeURL))

{

prevURL=decodeURL;

decodeURL=URLDecoder.decode( decodeURL, "UTF-8" );

}

return decodeURL;

} catch (UnsupportedEncodingException e) {

return "Issue while decoding" +e.getMessage();

}

}

它是如何工作的

1. 因为相同的 URL 可以被多次编码,所以我们需要一直对它进行解码直到不能再解码为止。

举个例子,"video%252Fmp4" 是两次编码的结果。第一次解码后,我们得到 "video%2Fmp4"。要得到正确的结果 "video/mp4",我们需要再解码一次。

2. 使用名为 URLEncoder 的预定义 Java 类的 decode 方法来解

3. URLDecoder 类的 decode 方法需要两个参数:

a. 第一个参数定义需要解码的 URL

b. 第二个参数定义使用的解码方案

4. 解码后,返回已解码的 URL.

5. 创建两个变量:prevURL 为空串,decodeURL 包含待解码的 URL

Variable State:

prevURL = ""

decodeURL ="somethingvideo%252Fmp4"

6. 创建一个重复执行的步骤,直到 prevURL 与 decodeURL 的值相等

7. 将 decodeURL 的值赋值给 prevURL,将传递的 URL 解码后的值赋给 decodeURL

Variable State:

prevURL = "somethingvideo%252Fmp4"

decodeURL ="somethingvideo%2Fmp4"

8. 如你所见,prevURL 的值不等于 decodeURL 的值,我们再次执行

Variable State:

prevURL = "somethingvideo%2Fmp4"

decodeURL ="somethingvideo/mp4"

9. 再一次

Variable State:

prevURL = "somethingvideo/mp4"

decodeURL ="somethingvideo/mp4"

10. 现在,prevURL 的值等于 decodeURL 的值了,得到了正确的解码结果。

输出

Decoded URL: https://r1---sn-ci5gup-cags.googlevideo.com/videoplayback?pcm2cms=yes&mime=video/mp4&pl=21&itag=22&&itag=43&type=video/webm; codecs="vp8.0, vorbis"&quality=medium Encoded URL2: https%3A%2F%2Fr1---sn-ci5gup-cags.googlevideo.com%2Fvideoplayback%3Fpcm2cms%3Dyes%26mime%3Dvideo%2Fmp4%26pl%3D21%26itag%3D22%26%26itag%3D43%26type%3Dvideo%2Fwebm%3B+codecs%3D%22vp8.0%2C+vorbis%22%26quality%3Dmedium

完整的程序

package com.cooltrickshome; import Java.io.UnsupportedEncodingException; import Java.net.URLDecoder; import Java.net.URLEncoder; public class URLEncodeDecode {

public static void main(String[] args) {

// TODO Auto-generated method stub String url="https%3A%2F%2Fr1---sn-ci5gup-cags.googlevideo.com%2Fvideoplayback%3Fpcm2cms%3Dyes%26mime%3Dvideo%252Fmp4%26pl%3D21%26itag%3D22%26\u0026itag=43\u0026type=video%2Fwebm%3B+codecs%3D%22vp8.0%2C+vorbis%22\u0026quality=medium";

String url2="https://r1---sn-ci5gup-cags.googlevideo.com/videoplayback?pcm2cms=yes&mime=video/mp4&pl=21&itag=22&&itag=43&type=video/webm; codecs=\"vp8.0, vorbis\"&quality=medium";

String decodeURL = decode(url);

System.out.println("Decoded URL: "+decodeURL);

String encodeURL = encode(url2);

System.out.println("Encoded URL2: "+encodeURL);

}

public static String decode(String url)

{

try {

String prevURL="";

String decodeURL=url;

while(!prevURL.equals(decodeURL))

{

prevURL=decodeURL;

decodeURL=URLDecoder.decode( decodeURL, "UTF-8" );

}

return decodeURL;

} catch (UnsupportedEncodingException e) {

return "Issue while decoding" +e.getMessage();

}

}

public static String encode(String url)

{

try {

String encodeURL=URLEncoder.encode( url, "UTF-8" );

return encodeURL;

} catch (UnsupportedEncodingException e) {

return "Issue while encoding" +e.getMessage();

}

}

}

感谢大家阅读由Java开发培训机构分享的“Java实现的URL编码和解码技术”希望对大家有所帮助,更多精彩内容请关注Java开发培训官网

免责声明:本站文章部分为会员发布或者转载自网络,旨在分享提供阅读,版权归原作者所有,侵必删!

文章出自:http://qh.itpxw.cn/peixun/software/202190893.html

文章标题:Java实现的URL编码和解码技术



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容