记:关于一次HTTP远程调用(RPC)问题--请求头部
世界如此多娇,我却依然暴躁
这是一段废话,当然开头我就说了,这是一段废话。如果您认真读了,那只能说声Sorry,我就是故意的。当然没别的意思,因为实在不知写啥…… 最后先祝阅读者们阖家团圆、万事如意、心想事成!
起因
一次不好经过总是让人难以忘怀,正在码字的我此刻刚从郁闷中解脱。然,这并不能让我高兴,因为这个个人认为实在有点小坑,自己认识也是有限,没有过早领悟。
作为一名半吊子程序猿,本人自认为对于HTTP的理解还算透彻。可没想到,还是太年轻。
对于现在来说,基本上十个HTTP API,九个都要认证。好巧不巧,我也是那九个之一。认证嘛,无非就是防篡改啦,AB信任问题啦。这不妨碍我继续热衷于HTTP。所以,咱就开始了微信支付调用之旅。GOGOGOGOGOGGO…………………………
经过
本来一件很简单的事情,但是为何为让我如此苦恼呢。
这就要问我们亲爱的Spring 大家族了。一个HTTP请求报文的请求头部居然可以有重复key。到底是HTTP本就支持呢,还是本就支持呢。
// 一段悲伤的经历(常规版)
content-encoding: br
content-type: text/html
date: Thu, 25 Mar 2021 10:07:04 GMT
etag: W/"605c493e-1aa0b"
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Authorization: *****************
// 一段悲伤的经历(无言版)
content-encoding: br
content-type: text/html
date: Thu, 25 Mar 2021 10:07:04 GMT
etag: W/"605c493e-1aa0b"
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Authorization: ****************1 // 本人中奖
Authorization: ****************2 // 本人中奖
你没看错,这喵的可以存在两个(Authorization)。好吧,可能我真的认知有限。单从HTTP协议上我可以原谅你。
但从程序猿角度这就不可原谅,你是要表示Array吗???????????
我改如何理解????????
情何以堪???????
当然还有我们亲爱的微信支付API
响应状态码也是很牛班,这种情况下给我个
reponse status 400
哎,您老就不能来个
reponse status 403
或者直接给个auth failed多好的。
好吧,这不是在说什么不是,只是个人觉得有点小坑,记录下,希望看到的程序猿们引以为戒。本来泪奔
别问为什么会出现两个Authorization,因为脑抽!
结果
当然是无害解决啦!去掉无关头部,使用正确的就好!
劈里啪啦
百年人生转瞬逝,
半天心态巧然咧。
不问谁是对与错,
只怪自己太年轻。
走你!!!!!