运行的项目中的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;邮箱:981086665@qq.com)联系联系,我们将及时更正、删除,谢谢。
网友评论