原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 问题发生 上上周,看到一位老哥找我们组同事联调接口,不知道是什么问题,两人坐一起搞了快1个小时,看起来好像有点复杂. 突然,老哥发出一声卧槽,"我传参里的+号,到你这怎么变成了空格!",这个声音很大,我明显的听到了,很快,我就大概Get到了他们的问题点. 我猜测他们遇到的问题大概如下: 我们的接口协议上,都会将请求数据做一次base64编码,然后放到data参数上. 然后某些数据做base64编码后…
通过七牛云base64上传图片,通过官方示例上传成功后,根据示例改了一个controller. 通过前端往后端传base64码形式进行测试.死活不通过,七牛报400. 仔细排查后发现,示例转换的base64码与前端传来的base64码稍有区别, 前端通过post传入的base64码将 "+"  号改成了  空格 . 网上解决方案 前台处理 :java方法:URLEncoder.encode(str,"UTF-8");js 方法encodeURIComponent(s…
场景:图片上传OSS存储,接口拿字符串去接前端传的base64码,服务器打印入参传的值,发现和前端打印的值有所区别,服务器中打印的值所有+号全部变成空格. 解决办法: Java中使用:url = url.replaceAll(" ","+");方式将空格换成+号. 前端将base64编码后的数据再进行urlencode编码. 参考:https://www.cnblogs.com/jpfss/p/10037984.html 场景:图片base64编码通过POST提交,…
<!doctype html><html><head><script> function show() { alert("123"); } setInterval(show(),1000); //只会弹出一次,调用setInterval函数,   //传递给它的两个参数一个是show()函数的返回值,                                          //一个是1000ms,因此只会执行show函数一次 s…
在写一个中文参数需求的时候遇到了以下问题,经过半天的测试和各种编码,以及网上一些有用没用的资料尝试终于解决    比如下面的url地址:http://travel.widget.baike.com:8010/travelComment.do?action=queryAllCommentList&docTitle=北京饭店    在程序中通过下面方法取参数request.getParameter("docTitle");:常理就是你不通过特殊处理也应该是乱码或者编码过的东西才对:…
最近项目中出现一个问题,就是前段调后端接口,参数带+号,传到后端后+号自动URLDecode成空格了. 1.问题排查 条件:tomcat配置server.xml有URIEncoding="UTF-8" 1.1get请求.post请求(参数跟在URL的后面),request.getParameter("token")中token会被自动URLDecode.而request.getQueryString()获得的值则是浏览器传的原值. 如果有中文,浏览器会自动转义,谷歌…
今天遇到这个问题,在网上找了几个答案,解决了问题,很高兴,所以贴出来给大家分享一下: URL如下 http://127.0.0.1/test/test.aspx?sql= and id='300+' Request.QueryString["sql"]后取出的值为and id='300', “+”就消失了,请问这是为什么?应该如何解决呢?___________________________________________________________________________…
spring cloud 使用 Feign 进行服务调用时,不支持对象参数. 通常解决方法是,要么把对象每一个参数平行展开,并使用 @RequestParam 标识出每一个参数,要么用 @RequestBody 将请求改为 body 传参,虽然这样解决了问题,但是这样限制了传参方式,并且使代码变得很繁重. 以下为完美解决 Feign 对象传参问题的办法. 1. 引入如下依赖(可以在maven仓库中搜索 strongfeign) <!-- https://mvnrepository.com/art…
在使用restTemplate中getForObject的map传参形式时: 开始时我是这么调用的: RestTemplate rest = new RestTemplate(); Map<String, String> params = new HashMap<String, String>(); params.put("s", "hello"); String url = "http://localhost:8990/drce/…
TIOBE排行榜是程序开发语言的流行使用程度的有效指标,对世界范围内开发语言的走势具有重要参考意义.随着数据挖掘.机器学习和人工智能相关概念的风行,Python一举收获2018年年度语言,这也是Python继2007和2010年之后第三次问鼎榜单.前阵子在GitHub创建Profile README时惊觉Python是我的第二高频语言,回想第一次见到positional only parameter传参方式时一头雾水的查找资料,借由周末闲暇,将Python函数传参的部分语法糖做一次总结. Pyt…