我是java的新手,我正在尝试使用GET命令来检索plex livetv目录。我遇到的问题是使用冒号“:”如果我使用冒号,我会收到此错误,但如果我使用URL编码“tv.plex.providers.epg.onconnect%3A23”,我会得到一个空白的livetv库。
为“:”字符串定义URL编码的正确方法是什么?
格式错误的网址。基数:http://192.168.1.50:32400/,相对:tv.plex.providers.epg.onconnect:23 / sections
public interface PlexMediaContainerService {
@GET("/")
Call<MediaContainer> retrieveRoot();
@GET("tv.plex.providers.epg.onconnect%3A23")
Call<MediaContainer> retrieveLibrary();
@GET("tv.plex.providers.epg.onconnect%3A23/sections")
Call<MediaContainer> retrieveSections();
@GET("tv.plex.providers.epg.onconnect%3A23/sections/{key}")
Call<MediaContainer> retrieveSections(@Path("key") String key);
@GET("tv.plex.providers.epg.onconnect%3A23/sections/{key}/{category}")
Call<MediaContainer> retrieveSections(@Path("key") String key,
@Path(value = "category", encoded = true) String category);
@GET("tv.plex.providers.epg.onconnect%3A23/sections/{key}/{category}/{secondaryCategory}")
Call<MediaContainer> retrieveSections(@Path("key") String key,
@Path(value = "category", encoded = true) String category,
@Path(value = "secondaryCategory", encoded = true) String secondaryCategory);
@GET("{urlPath}")
Call<MediaContainer> retrieveItemByUrlPath(@Path(value = "urlPath", encoded = true) String key);
@GET("tv.plex.providers.epg.onconnect%3A23/sections/{key}/search?type=1")
Call<MediaContainer> movieSearch(@Path("key") String key,
@Query("query") String query);
@GET("tv.plex.providers.epg.onconnect%3A23/sections/{key}/search?type=2")
Call<MediaContainer> tvShowsSearch(@Path("key") String key,
@Query("query") String query);
@GET("tv.plex.providers.epg.onconnect%3A23/sections/{key}/search?type=4")
Call<MediaContainer> episodeSearch(@Path("key") String key,
@Query("query") String query);
}
答案 0 :(得分:0)
问题是okhttp层中的resolve
方法不知道如何合并到同时以主机开头的url。您可以在路径的开头添加/
,以使okhttp了解它是路径而不是主机。您不需要自己编码:
。例如,
@GET("/tv.plex.providers.epg.onconnect:23")
Call<MediaContainer> retrieveLibrary();