Closed elevenChen2019 closed 3 years ago
代码这样写很危险,会把其它所有源的封面都加上这个Host了。参考这个:
override fun coverHeaders(coverUrl: String, headers: MutableMap<String, String>): Boolean {
if(coverUrl.contains("2uxs.com") || coverUrl.contains("xinexin.cn")) {
headers["Referer"] = "http://www.2uxs.com/"
headers["Host"] = URL(coverUrl).host
return true
}
return false
}
具体原因我晚些时候回去看一下
原因找到了,有声小说吧屏蔽了手机的UA(所有图片会默认加上这个UA),用代码改成桌面UA即可:
override fun coverHeaders(coverUrl: String, headers: MutableMap<String, String>): Boolean {
if(coverUrl.contains("ysxs8.com")) {
headers["Host"] = URL(coverUrl).host
headers["User-Agent"] = getDesktopUA()
return true
}
return false
}
图片问题已经解决。但是音频还是有问题,我在postman上添加Referer或Cookie都行,但是在软件上还是无法播放,然后试着添加User-Agent也没有效果,音频地址是:http://ysting.ysxs8.com:81/%E6%8E%A2%E9%99%A9%E7%9B%97%E5%A2%93/%E3%80%8A%E9%AC%BC%E5%90%B9%E7%81%AF%E7%AC%AC2%E9%83%A81%E5%8D%B7%E9%BB%84%E7%9A%AE%E5%AD%90%E5%9D%9F%E3%80%8B%E8%89%BE%E5%AE%9D%E8%89%AF/%E3%80%8A%E9%AC%BC%E5%90%B9%E7%81%AF%E7%AC%AC2%E9%83%A81%E5%8D%B7%E9%BB%84%E7%9A%AE%E5%AD%90%E5%9D%9F%E3%80%8B001--%E6%9C%89%E5%A3%B0%E5%B0%8F%E8%AF%B4%E5%90%A7[www.ysxs8.com].mp3 以下是postman、浏览器和程序代码截图:
https://github.com/eprendre/tingshu/blob/master/CustomSources/src/main/kotlin/com/github/eprendre/sources_by_eprendre/YouShengXiaoShuoBa.kt 这是我的示例代码,有声小说吧用了iframe嵌套,需要修改script才能获取到内部iframe的元素。 如果你用的是pc版页面,那应该没套iframe。 去app内部的debug试一下,看音频地址是否获取到了。
原因找到了: PC版页面对音频地址做了验证, 需要加上Cookies。 而我那个代码是手机版的,它的音频地址带上了一个参数: vsid=xxxxxx,免去了验证。 你代码里已经加上Cookies了,理论上应该OK。实在不行加Q群给我代码,晚上帮你调试。
在app 里没法调试,因为app调试获取的第一本书音频文件,在原网站上这本书音频文件就是没有的,所以app上调试不出来。我把代码发给你吧,我有二群和三群,怎么发给你。
问题已解决