Tomcat报字符错误的简单处理方法

运行的项目中的Tomcat报这种错误:

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

一般是请求中含有Tomcat中不允许出现的字符,楼主这里遇到的是请求中含有中文字符,有些设备在进行请求时无法将这些字符自动转码。

那么遇到这种情况,只需要简单的对请求方的字符进行编码,然后接受方再讲编码转换为需要的编码即可

Js中请求的url处理

var nickName = this.data.userInfo.nickName;
nickName = encodeURIComponent(nickName);
nickName = encodeURIComponent(nickName); //建议二次编码

//处理过后的字符可以正常访问
var that = this;
var id = e.currentTarget.dataset.id;
var openid = e.currentTarget.dataset.openid;
wx.request({
     url: api.ip + 'visitpraise/insertpraise?questionid=' + id + '&nickName=' + nickName + '&openid=' + openid,
     method: 'POST',
     data: {},
     fail: function(){
          wx.showToast({
               title: '连接错误',
               icon: 'none'
          })
     }
})

楼主后台接受请求用的是springboot框架

@RequestMapping(value ="/inserforumuser",method = RequestMethod.POST)
public String insertForumuser(Forumuser forumuser){
     String test = getForumuser(forumuser.getOpenid()).get("forumuser").toString();
     if(test.equals("0")){
          String nickName = forumuser.getNickName();
          try {
               nickName = URLDecoder.decode(nickName,"UTF-8");
               //此处为转码操作,转码过后为传输过来的中文字符
               forumuser.setNickName(nickName);
          }catch (UnsupportedEncodingException e) {
               e.printStackTrace();
          }
          forumuserService.insert(forumuser);
     }
     return "success";
}

文集推荐:

Java基础方法集1
Python基础知识完整版
Spring Boot学习笔记
Linux指令进阶
Java高并发编程
SpringMVC基础知识进阶
Mysql基础知识完整版
健康管理系统学习花絮(学习记录)
Node.js基础知识(随手笔记)
MongoDB基础知识
Dubbo学习笔记
Vue学习笔记(随手笔记)

声明:发表此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本我们(QQ:981086665;邮箱:[email protected])联系联系,我们将及时更正、删除,谢谢。

你可能感兴趣的:(Tomcat报字符错误的简单处理方法)