1.urlencode  和urldecode其实两者相辅相成,作用刚好相反

urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。
urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符
2.示例:
StringBuffer sb=new StringBuffer();
        sb.append("APPID=");
        sb.append(URLEncoder.encode("hu1TjSmrQNtO9jm1kxzVwP1zOJc=","UTF-8"));
        sb.append("&AuthToken=");
        sb.append(URLEncoder.encode("PEF1dGhUb2tlbj48UmVzdWx0VHlwZT5ZPC9SZXN1bHRUeXBlPjxBdXRoRGF0YT5YNzM4eFRiTEVGOGhxT2hQZklqTnZKcGd6YjgxU2crVDN" +
                "EY2RObFNQQnlabXJSZzJuUktIdEg2YVJUN0J3cWJ0QnZBS2xOZkFmcXZlZWthWUdldWgzRlkvMmJxdEFta3F1WTBsTGdLWVVUWVcxZ1pBKytkZU5" +
                "5QWYzN2JML0NMZ3VySVpmZ1lKOUNjbUJIOGVhS2JoWWxtMGg0RzFwNzVGNWR5ejgzbmx0T2JSRkxVckNyNzh3bTg3MHpMVjV0MHBBZE5sNnVvV" +
                "EJLU3JvYXpIcTBJK2EvdVJPeTAxWkpvM1FrekdhL2FObzk4am5TaG8zNEZQSGkwZVhEcnlOY0lrZ0V4Z1dTRGpOeE0vQ01FQmt3U05lZlVGVF" +
                "pRL3VrQzVxRVVpKzhVamlKbnRIZkxMNVNLV2xEaXN3MzBvZjZCWXN0NG4rcU53aVFjKy8ySjhCT2pGanh2V21hSUh4Uys2WHJyOVFrR0VMNkpxTmtl" +
                "VHJhMURZV2gxVkM2dXZVZm9KYjdtdnFBWlRLVUR4dUhlVjVQSVN0NlhrU04wcTJaYm91eGtXWEZsdGdSa1dyNnpzUGR3TjlzVlZnZXI2SnJtdTRyME" +
                "M1Tk5wME9oU1U0bEUwRXVNN2d4VVMrTXVRK3BuRk85dkNRZWtQRkZxTkpmUDBtUS9wZVkyNEUrc1FkaDF4MEp4bjdmb1NHbzY4RDZ0VXJjaGNrSERr" +
                "ejREOGxVK0FoRDd0MGZpMkVSQU9HOVlwdXBNM3hVWFNmaG9DcHRmd05zNUJUY1pkSHFqQlFTaVVTV2Qzd1BKTjZRMzRlWjNzZWJrN091dXl3ODl1RH" +
                "JqdThnZGN0RzlJRG1VWE8xdGVJM3hybUhpcWM9PC9BdXRoRGF0YT48QXV0aE5hbWU+TUJBTktfT05FTkVUPC9BdXRoTmFtZT48QXV0aFNpZ25hdHVyZ" +
                "T5hb2VkN09lM3hHaUZFSldQWldxSXVnT29SWHBCR2JJdUgxQ241TzZWT1EwSEJtRmM0Y0xxdHNHS0gwY0FSZXdtcDllZUF4bllhVllhSXVsVTcwSDBxV" +
                "3REY2FjQ01ycVRRRWdMVVhCdmpBcG5vVk9UQUUzdVowSTFVR01TaDI3dzhORkdUM3QzWDFaVGlWcy9UOXlIQzBLT2FWODY2Yk53dllrM25RTzlwRGs9PC" +
                "9BdXRoU2lnbmF0dXJlPjxUaW1hc3RhbXA+MjAyMDExMDQxNjU2MDU8L1RpbWFzdGFtcD48L0F1dGhUb2tlbj4=","UTF-8"));
    
            String xx=x.post("http://99.13.32.215/MGMActivityAPI/api/login/loginclient", sb.toString());
            System.out.println(xx);
        } catch (Exception e) {
View Code

代码中:需要注意以下几点:

a.AAPID= 为何没有进行转码。那是因为这个位置是http请求拼接用的等号,这个等号是为了让我们形成key-value格式

b.我们只需要对请求的value值进行转码。

3.如果jmeter中又该如何发送呢?

${__urlencode()},  ${__urldecode()}  你值得拥有。

如果有闲心的话。手动将这些特殊字符写成16进制也行。

 
posted on 2020-11-05 09:44  进_进  阅读(558)  评论(0)    收藏  举报