`

http请求参数中含有&,则必须URL编码

阅读更多

http请求参数中含有&,则必须URL编码

/***
     * 如果参数中含有特殊字符&,则强制URL编码<br>
     * 为什么?因为http参数就是通过& 分隔的
     *
     * @param parameterIncludeBean
     */
    public static void urlencodeParameter(ParameterIncludeBean parameterIncludeBean) {
        String val = parameterIncludeBean.getValue();
        if (!ValueWidget.isNullOrEmpty(val) && val.contains("&")) {
            try {
                val = URLEncoder.encode(val, SystemHWUtil.CHARSET_UTF);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            parameterIncludeBean.setValue(val);
        }
    }

protected TreeMap getParameterMap(boolean isUrlEncoding,String requestCharset) {
        List<ParameterIncludeBean> parameters = getTableParameters();
        //如果请求参数中含有&特殊字符,则需要进行URL编码
        if (!ValueWidget.isNullOrEmpty(parameters)) {
            int size = parameters.size();
            for (int i = 0; i < size; i++) {
                ParameterIncludeBean parameterIncludeBean = parameters.get(i);
                urlencodeParameter(parameterIncludeBean);
            }
        }

       return TableUtil.getParameterMap(parameters, isUrlEncoding, requestCharset);
    }

 

com.common.bean.ParameterIncludeBean

public String getQueryString(boolean isUrlEncoding,String requestCharset) {
    	if(isUrlEncoding 
    			&&!ValueWidget.isNullOrEmpty(this.value) 
    			&&!ValueWidget.isNullOrEmpty(requestCharset)){
    		try {
				this.value=URLEncoder.encode(this.value, requestCharset);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
    	}else{//如果参数中含有特殊字符&,则强制URL编码,为什么?因为http参数就是通过& 分隔的
    		if(!ValueWidget.isNullOrEmpty(this.value)&&this.value.contains("&")){
                try {
                	this.value= URLEncoder.encode(this.value, SystemHWUtil.CHARSET_UTF);//必须使用UTF-8编码
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
    	}
        return this.key + "=" + this.value;
    }

 

 

 

0
6
分享到:
评论

相关推荐

    URL编码解码小程序

    总的来说,URL编码解码小程序是一个实用的工具,可以帮助用户方便地处理含有非ASCII字符或特殊字符的URL,提高他们在网络开发和数据处理中的效率。理解URL编码的工作原理和应用场景,对于理解互联网通信的基础和解决...

    Java Http请求传json数据乱码问题的解决

    在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...

    url编码转换器

    在压缩包内的`code.exe`文件可能是这个url编码转换器的可执行程序,用户运行这个程序后,可以方便地在界面中输入含有特殊字符的URL,点击按钮即可完成编码或解码的操作。不过,需要注意的是,下载未知来源的可执行...

    URL编码解码免费小工具

    在Web开发中,我们经常需要对查询参数、路径分段等进行URL编码。同时,服务器在接收到编码后的URL后,会进行解码,恢复成原始格式。 "URL编码解码免费小工具"是一种实用的应用程序,它简化了手动编码和解码的过程。...

    URL参数加密解密(java版)

    在Java开发中,URL参数加密解密是网络安全的重要环节,特别是在J2EE应用程序中,确保数据传输的安全性至关重要。URL参数通常包含用户敏感信息,如登录凭证、交易详情等,因此需要进行加密处理以防止数据在传输过程中...

    java后台发起http请求 处理中文乱码

    在进行HTTP请求时,如果请求参数或响应内容中含有中文字符,这些中文字符在传输过程中可能会被编码为不同的格式。如果接收方解码的方式与发送方编码方式不一致,则会出现乱码现象。通常情况下,HTTP请求中的中文乱码...

    vc URL编解码类

    在URL编码过程中,非字母数字字符会被替换为其ASCII值的十六进制表示,并在前面加上"%". 例如,空格被替换为"%20"。编码的主要目的是确保URL在HTTP请求中能够被正确解析和传递。URL解码则是编码的逆过程,将编码后的...

    解决了中文乱码的http的get和post请求demo

    在GET请求中,参数通常被编码后附加在URL后面。Java的`URLEncoder.encode()`方法可以用来对参数进行编码,但默认使用的是ISO-8859-1编码,不支持中文。因此,我们需要明确指定为UTF-8编码,例如: ```java String...

    UrlEncodeDecode解码编码工具(双向)

    UrlDecode则是URL编码的逆过程,它将已经编码的URL转换回其原始形式,以便正确解析和理解。这在处理用户输入、解析查询参数或者在服务器端处理请求时非常有用。例如,"%20"会被解码为一个空格。 这个名为...

    GET方法URL中传递中文参数乱码的解决方法

    首先,我们要理解URL编码的基本原理。URL(统一资源定位符)是不能直接包含非ASCII字符的,包括中文在内的大多数非英文字符。因此,当在URL中使用非ASCII字符时,需要将其转换为百分号编码(%xx)的形式,这是一个...

    asp.net页面通过URL参数传值中文乱码问题解决办法

    例如,使用HttpWebRequest类发送HTTP请求获取含有中文参数的页面内容时,需要明确指定正确的字符编码,如GBK: ```csharp string message = ...

    解决Python 爬虫URL中存在中文或特殊符号无法请求的问题

    对于Python中处理URL编码的函数,urllib.parse模块中的quote函数是其中之一,它可以将一个字符串进行URL编码。例如,如果我们的URL中包含了中文,那么使用quote函数就可以将中文字符转换为URL编码。在quote函数中,...

    页面get请求 中文参数方法乱码问题的快速解决方法

    然而,当GET请求的参数包含中文字符时,由于编码格式不一致或者处理不当,可能会出现中文乱码的问题。本篇文章将详细介绍如何快速解决这一问题。 首先,我们需要理解乱码产生的原因。在HTTP请求中,URL(统一资源...

    解决url中文乱码.doc

    在Java Web开发中,URL中文乱码问题是一个常见的困扰,主要出现在传递含有中文字符的参数时。本案例中,我们将探讨如何解决这个问题,涉及到的主要知识点包括URL编码、字符集转换以及在Java Servlet、JSP和Struts2...

    GET 方式提交的含有特殊字符的参数

    在Web开发中,GET请求是HTTP协议中一种常见的数据提交方式,它通过URL来传递参数。然而,当这些参数包含特殊字符时,可能会引发解析问题,导致服务器无法正确解析请求。本文将深入探讨如何处理GET方式提交的含有特殊...

    ajax传送参数含有特殊字符的快速解决方法

    JQuery AJAX中遇到这样一个问题,参数中包含特殊字符,比如&’#@等, 这时执行AJAX的时候就会出问题,因为所传的参数变了.看个示例就明白: 方案一: $.ajax({ url: '/ashx/ajax.ashx', type: 'post', data: 'option...

    带参数url转二维码图片.zip

    用户可以在这里输入URL和自定义的说明文字,然后通过调用后端服务或JavaScript库将URL编码为二维码。 2. **qrcodechannelid.html**: 从名字推测,这个文件可能是针对特定渠道ID的二维码生成,可能用于追踪不同来源...

    URL傳遞中文參數問題

    在给定的例子中,a.jsp页面通过URL编码方式传递中文参数“华工”至b.jsp页面。首先,使用`URLEncoder.encode()`方法对参数进行编码,然后在b.jsp中使用`new String(request.getParameter("test").getBytes("ISO8859_...

    java 用HttpsURLConnection进行传递中文时错误总结

    4. **URL编码**:对于GET请求,URL中的参数可能需要进行URL编码,防止特殊字符引起解析问题。使用`URLEncoder.encode()`方法: ```java String encodedParam = URLEncoder.encode("中文参数", "UTF-8"); String ...

Global site tag (gtag.js) - Google Analytics