You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中GET请求冒号:的URL编码正确方式问询

解决Plex直播电视目录GET请求中的URL编码问题

我刚接触Java调用Plex API时,也碰到过几乎一模一样的坑!让我来帮你捋清楚问题出在哪,以及怎么解决。

你遇到的核心矛盾其实不是冒号的编码方式不对——%3A确实是冒号:的标准URL编码,但Plex的API在处理路径里的特定标识符时,有自己的规则。

关键结论:冒号不需要编码!

你的完整请求URL应该是:http://192.168.1.50:32400/tv.plex.providers.epg.onconnect:23/sections

这里的冒号是Plex直播源标识符的一部分,属于合法的路径组成字符,直接保留就行。你之前直接用冒号触发「Malformed URL」错误,大概率是Java代码里手动拼接URL的写法有问题,不是冒号本身的锅。

Java中正确构造URL的姿势

别手动拼字符串构造URL,建议用java.net.URI类来构建,它会自动处理真正需要转义的字符,同时保留Plex标识符的结构:

import java.net.URI;
import java.net.URL;

public class PlexLiveApiTest {
    public static void main(String[] args) throws Exception {
        String baseUrl = "http://192.168.1.50:32400";
        String liveSectionPath = "tv.plex.providers.epg.onconnect:23/sections";
        // 用URI类处理路径拼接,自动处理合法字符
        URI plexUri = new URI(baseUrl + "/" + liveSectionPath);
        URL requestUrl = plexUri.toURL();
        
        // 接下来就可以用这个requestUrl发起GET请求了
    }
}

为什么编码后返回空库?

当你把冒号转成%3A后,Plex API会把tv.plex.providers.epg.onconnect%3A23当成一个完整的provider名称,而不是tv.plex.providers.epg.onconnect加上端口23,自然找不到对应的直播电视库,所以返回空结果。

内容的提问来源于stack exchange,提问作者Matthew Gorski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:52:27