博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RSS阅读器“阅读原文”报错400
阅读量:6408 次
发布时间:2019-06-23

本文共 872 字,大约阅读时间需要 2 分钟。

问题

  使用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);}

 

原创文章,欢迎转载,转载请注明出处!

你可能感兴趣的文章
登录注册界面的传值
查看>>
如何修改计算列列名
查看>>
[2019.2.13]BZOJ4318 OSU!
查看>>
版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )
查看>>
HashMap与HashCode
查看>>
QCustomplot使用分享(三) 图
查看>>
什么是java?
查看>>
office等资料下载
查看>>
[LeetCode]题解(python):149-Max Points on a Line
查看>>
WPF路径动画(动态逆向动画)
查看>>
ESXi 主机创建datastore失败
查看>>
day3-函数介绍
查看>>
Low Level Reader Protocol (LLRP) 简介
查看>>
[Micropython]TPYBoard v10x NRF24L01无线通讯模块使用教程
查看>>
mysql中show processlist过滤和杀死线程
查看>>
dxRangeTrackBar使用教程
查看>>
最新Sublime Text 2 激活 汉化
查看>>
spring为什么推荐使用构造器注入
查看>>
C# 使用反射 遍历输出 对象的属性
查看>>
基础数据类型之字典
查看>>