问题

  使用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的更多相关文章

  1. svn报错 400 Bad Request

    MyEclipse中的svn,commit经常报错 Error: Commit failed (details follow):  Error: At least one property chang ...

  2. 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 ...

  3. docker升级后启动报错400 Client Error: Bad Request ("Unknown runtime specified docker-runc")

    宝塔面板docker升级后启动容器时报错400 Client Error: Bad Request ("Unknown runtime specified docker-runc" ...

  4. Vue上传通过“服务端签名后直传”上传文件到阿里云 报错 400 Bad Request

    我报错的原因是 formData.append('file', file) 放在签名前面了 解决办法 formData.append('file', file) 一定在最后 /** * 上传文件到 o ...

  5. vue项目打包后运行报错400如何解决

    昨天一个Vue项目打包后,今天测试,发现无论localhost还是服务器上都运行不了,报错如下: Failed to load resource: the server responded with ...

  6. react-native 中使用redux 优化 Connect 使用装饰器简化代码报错

    报错信息 error: bundling failed: Error: The 'decorators' plugin requires a 'decoratorsBeforeExport' opti ...

  7. Scrapy payload 报错400

    首先Scrapy 发送payload请求格式如下: def start_requests(self): querystr = { "ctoken": "U-ang1zmp ...

  8. tomcat8 url包含|等特殊字符报错400的问题

    这个问题纠缠了我很久了,终于在今天早上解决了,感谢自己的不放弃和不断尝试的决心,我坚信,我可以找到解决方式!! 项目用的spring .spring mvc.hibernate框架,关于统一错误页面在 ...

  9. tomcat8踩坑:url包含|等特殊字符报错400的问题

    这个问题纠缠了我很久了,终于在今天早上解决了,感谢自己的不放弃和不断尝试的决心,我坚信,我可以找到解决方式!! 项目用的spring boot+spring security框架,关于统一错误页面在开 ...

随机推荐

  1. HTTP请求中的Keep-Alive模式,是怎么区分多个请求的?

    Keep-Alive模式 我们都知道HTTP是基于TCP的,每一个HTTP请求都需要进行三步握手.如果一个页面对某一个域名有多个请求,就会进行频繁的建立连接和断开连接.所以HTTP 1.0中出现了Co ...

  2. 深度学习之概述(Overview)

    2016年被称为人工智能的元年,2017年是人能智能应用的元年:深度学习技术和应用取得飞速发展:深度学习在互联网教育场景也得到广泛应用.本文主要介绍机器学习及深度学习之定义及基本概念.相关网络结构等. ...

  3. MyEclipse和eclipse的区别

    对于新手来说,MyEclipse和eclipse来说的区别可能就是MyEclipse比eclipse多了my,MyEclipse主要为JavaEE开发,而Eclipse主要为Java开发..那么MyE ...

  4. STL vector用法

    基本操作 1.构造函数 vector():创建一个空vector vector(int nSize):创建一个vector,元素个数为nSize vector(int nSize,const t&am ...

  5. 关于XLL加载项动态加载、卸载的演示及XLL函数自定义类型注册的演示

    1.在XLL中,把函数定义成不同的类型,在Excel中的实际效果也不同,具体如下: pxMacroType value                                          ...

  6. 我们为什么要使用List和Set(List,Set详解)

    1.集合概述 类图 集合和数组的区别? 集合基本方法 集合特有的遍历方式? public static void main(String[] args) { //创建集合对象 Collection c ...

  7. linux下jenkins的时区设置问题

    https://blog.csdn.net/king_wang10086/article/details/76178711 [root@jenkins ~]# yum install -y ntpda ...

  8. Centos 7 关闭selinux and firewall

    关闭selinx,重启生效 修改文件 /etc/selinux/config 修改 SELINUX=disabled getenforce #查selinux状态 setenforce #关闭seli ...

  9. MongoDB操作(1)—MongoDB java驱动核心层次结构及操作流程

    MongoDB之java驱动学习 预备: 本地运行MongoDB采用默认端口20717: 安装MongoDB驱动: 以下关键步骤. 核心层次结构或步骤: 创建连接池:MongoClient实例. 对于 ...

  10. Linux 系统命令行入门基础

    Linux 命令行组成结构 打包及压缩命令 tar 解压压缩包: