使用java模拟http请求时关于特殊字符的处理+

原创 2016年08月29日 17:03:25

今天根据测试需要.使用java模拟http请求,访问web服务,并传参数.看似简单的问题,却因字符问题卡了一下!故有必要记录一下

问题描述:java模拟http测试中在请求的参数中带有+(加号),请求指定url,后台收到的参数总是异常,而在浏览器中却正常

开始以为是一大串字符中可能没有trim() 或去除一些特殊字符.尝试后均失败.没办法只能笨方法对比一下 浏览器访问和JAVA模拟访问 WEB收到的参数对比一下.

原来+变成空格.

后来灵机一动.想到URLEncoder.encode(String s, String enc),专门用来于url打交道的..果不其然....顺便来段部分代码


URL url = new URL(urlStr);
URLConnection connection = url.openConnection();
	//重要.需要编码,防止特殊字符
			String key = 	URLEncoder.encode(m.get("xxx")+"", "utf-8") +"".trim();
  connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  // 发送POST请求必须设置如下两行
	            connection.setDoOutput(true);
	            connection.setDoInput(true);
         out = new PrintWriter(connection.getOutputStream());
	            // 发送请求参数
	            out.print(param);
	            // flush输出流的缓冲
	            out.flush();
	 connection.connect();


如果要获取HTTP交互结果可以参考下面的

inputStream = connection.getInputStream();
			            inputStreamReader = new InputStreamReader(inputStream);
			            reader = new BufferedReader(inputStreamReader);



相关文章推荐

java处理url中的特殊字符%等

转载: java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。 一个完...
  • fgh2009
  • fgh2009
  • 2014年10月22日 02:09
  • 6507

http请求数据包含特殊字符处理(java)

问题描述:android客户端与后台进行网络请求的时候,为了安全起见,我们采用的方法一般是加签名,这个签名可以是Base64加密过的,或是RSA加密过的,这些签名的共同特点就是一大长串字符串,里面包含...

java处理url中的特殊字符(如&,%...)

URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。 一个完整的URL包括如下内容: 1. 应用协议名称,包括http,ft...
  • Java18
  • Java18
  • 2012年04月15日 18:37
  • 7679

http参数中特殊字符处理

特殊字符 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制...

http url转义字符,特殊字符

http url转义字符,特殊字符

tomcat容器下 http 请求参数中特殊字符(+、&、%)的问题

一、现象  大家在java web 开发过程中,应该遇到过请求参数中有特殊字符导致后台获取参数时异常的情况。      参数中有 + : 比如参数是 voteless+cz ,在后台用 request...

Java Web 一些特殊字符的过滤(appscan检查的安全问题)

适用于出现以下问题: 1、SQL盲注 2、存储的跨站点脚本编制 或 跨站点脚本编制 import java.io.IOException; import java.util.Enumerati...

java如何得到GET和POST请求URL和参数列表

java如何得到GET和POST请求URL和参数列表
  • yaerfeng
  • yaerfeng
  • 2014年02月05日 22:28
  • 143854

发送HttpGet请求时,URL包含空格怎么办?

做一个项目,需要将用户的留言信息上传至服务器。 我使用的是HttpGet请求,将留言内容直接拼接在url上面的。 可是,当留言内容中间出现空格时,执行HttpGet get = new HttpG...

总是陷在有加号"+"的URL参数这个坑里

最近已经遇到好多次这个问题了, 因为参数带有加号"+", 没有给它进行URL编码的话, 使用request.getParameter取到的值不对, 原因是加号"+"被自动URL解码成空格了" ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用java模拟http请求时关于特殊字符的处理+
举报原因:
原因补充:

(最多只允许输入30个字)