RSS阅读器“阅读原文”报错400
问题
使用SpringMVC框架,实现了RSS订阅,在FoxMail的RSS订阅页面,点击【阅读原文】,报错400 。
每个RSS文章的链接是:https://jiashubing.cn/forum/details?id=211。最后的数字是长整型,每篇文章都不一样
这个链接直接在浏览器中是可以打开的,但是在RSS阅读页面,点击【阅读原文】,会直接报错400。在本地进行调试打断点,发现并不能走进对应的Controller方法
HTTP Status 400 -
type Status report
message
description The request sent by the client was syntactically incorrect.
分析
对于这个错误,首先考虑的就是传递参数的错误,或许是参数名不对,或许是参数类型不能转换。
我的参数只有一个id,类型是Long。参数名是不会错的,那参数类型是不是错了呢?
尝试将参数类型改成String,发现方法是进去了,但是这个参数的值却多了一个奇怪的后缀。
211?foxhandler=RssReadRenderProcessHandler
看来通过FoxMail的RSS阅读器,点击【阅读原文】,是默认会添加上 "?foxhandler=RssReadRenderProcessHandler" 这个后缀的,这样自然不能转换成Long类型了
解决
我的方法很简单,重新建一个请求,参数为String,过滤到多余的后缀以后,再重定向到展示页面
RequestMapping("/rss/details")
public String loadRssDetails(String id) {
id = id.substring(0, id.indexOf('?'));
return "redirect:/forum/details?id=" + Long.parseLong(id);
}
原创文章,欢迎转载,转载请注明出处!
RSS阅读器“阅读原文”报错400的更多相关文章
- svn报错 400 Bad Request
MyEclipse中的svn,commit经常报错 Error: Commit failed (details follow): Error: At least one property chang ...
- ajax 调用 .net core WebAPI,报错 400 (Bad Request) Unexpected character encountered while parsing value
此文由博主前两天的提问及 dudu 的回答整理,地址:https://q.cnblogs.com/list/myquestion 情况说明 基于 .net core 写了一个 Web API,用 po ...
- docker升级后启动报错400 Client Error: Bad Request ("Unknown runtime specified docker-runc")
宝塔面板docker升级后启动容器时报错400 Client Error: Bad Request ("Unknown runtime specified docker-runc" ...
- Vue上传通过“服务端签名后直传”上传文件到阿里云 报错 400 Bad Request
我报错的原因是 formData.append('file', file) 放在签名前面了 解决办法 formData.append('file', file) 一定在最后 /** * 上传文件到 o ...
- vue项目打包后运行报错400如何解决
昨天一个Vue项目打包后,今天测试,发现无论localhost还是服务器上都运行不了,报错如下: Failed to load resource: the server responded with ...
- react-native 中使用redux 优化 Connect 使用装饰器简化代码报错
报错信息 error: bundling failed: Error: The 'decorators' plugin requires a 'decoratorsBeforeExport' opti ...
- Scrapy payload 报错400
首先Scrapy 发送payload请求格式如下: def start_requests(self): querystr = { "ctoken": "U-ang1zmp ...
- tomcat8 url包含|等特殊字符报错400的问题
这个问题纠缠了我很久了,终于在今天早上解决了,感谢自己的不放弃和不断尝试的决心,我坚信,我可以找到解决方式!! 项目用的spring .spring mvc.hibernate框架,关于统一错误页面在 ...
- tomcat8踩坑:url包含|等特殊字符报错400的问题
这个问题纠缠了我很久了,终于在今天早上解决了,感谢自己的不放弃和不断尝试的决心,我坚信,我可以找到解决方式!! 项目用的spring boot+spring security框架,关于统一错误页面在开 ...
随机推荐
- 03 Django REST Framework 视图和路由
01-DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别 ...
- 数组去重--ES5和ES6
思路:把去重后的数组放到一个空数组中 ES5实现: function uni(arr) { var result = []; for (var i=0;i<arr.length;i++) { i ...
- python二:数据类型举例练习--小白博客
一.#字符串 res = 'hello,world' 1.#字符串切片取值:******* print(res[0:5]) 顾头不顾尾,取下标0-4的字符 print(res[0:-1:2]) 步长为 ...
- Python学习第三篇——逻辑判定
request_foods=["tomato","beaf","milk"] for elements in request_foods: ...
- AQS解析(未完成)
参考:Java并发之AQS详解 同步队列和condition等待队列.获取到锁的线程则处于可运行状态,而未获取到锁的线程则被添加到同步队列中,等待获取到锁的线程释放锁. 一.数据结构 Node sta ...
- Java Core - Class文件结构之魔数、版本号、常量池
下图是一个.java文件被编译器编译后产生的二进制的class文件的内容:由图可知,class文件是用两位16进制数来表示的一个字节. 1个字节就是1Byte,1Byte=8bit. 一.魔数(CAF ...
- 11-vue的使用
一.安装 对于新手来说,强烈建议大家使用<script>引入 二. 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函数. 三.使用V ...
- java代理:静态代理和动态代理
一.Java中有一个设计模式是代理模式 代理模式是常用的Java设计模式,特征是代理类与委托类有相同的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等. 代理类 ...
- spark-shell简单使用介绍(scala)
>>提君博客原创 http://www.cnblogs.com/tijun/ << 提君博客原创 1.进入命令窗口 ./bin/spark-shell 附上帮助指令,查看一 ...
- 校园电商项目4——SSM各项配置
步骤一:数据库连接文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/school_o2o?useUni ...