guozhigq / pilipala

PiliPala 是使用Flutter开发的BiliBili第三方客户端,感谢使用。
GNU General Public License v3.0
7.45k stars 307 forks source link

fix: 无法打开专栏 #1078

Closed Aiden2014 closed 1 week ago

Aiden2014 commented 1 week ago

issue: #1070 原因是官方在获取专栏的 cookie 上加了opus-goback = 1。不加上的话会循环重定向。

guozhigq commented 1 week ago

不是强相关吧,我把这个字段删掉,强制刷新后也可以正常展示 QQ20241111-232241

Aiden2014 commented 1 week ago

的确是不强相关。但是通过抓包,发现没有这个字段的情况下,会进行四次重定向回原来的URL后,就被认为是循环重定向了。 Screenshot_2024-11-12-00-23-32-234_com.network.proxy-edit.jpg 抓包看到的最开始的请求ua是Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15 但是后面三次的重定向的ua就变回Dart的了,其他headers不变,这应该是dio库检测loop的问题。 Image_1731380374555.png 而在 cookie 加了opus-goback 字段后,就不需要redirect了,能够直接获取到结果了。 Screenshot_2024-11-12-11-02-43-625_com.network.proxy-edit.jpg

Aiden2014 commented 1 week ago

Screenshot_2024-11-12-11-12-11-799_com.network.proxy-edit.jpg

Screenshot_2024-11-12-11-12-39-242_com.network.proxy-edit.jpg

Screenshot_2024-11-12-11-12-55-814_com.network.proxy-edit.jpg

Screenshot_2024-11-12-11-13-10-344_com.network.proxy-edit.jpg

从上往下是4次 redirect 的 ua 情况,b站专栏是根据 ua 和 cookie 中的 opus-goback 字段来判断的。

Screenshot_2024-11-12-11-16-16-795_com.network.proxy-edit.jpg

redirect 的过程中,b站会在第二次请求时返回 opus-goback 字段,但是后面两次请求都不会带上这个字段。

guozhigq commented 1 week ago

可以

guozhigq commented 1 week ago

可以

一些关于 opus-goback 的讨论