1

我是 java 新手,我正在尝试使用 GET 命令进行一些 URL 编码来检索 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);
}
4

1 回答 1

0

问题是resolveokhttp 层中的方法不知道如何合并到都以主机开头的 url。您可以在路径的开头添加 a/以使 okhttp 了解它是路径而不是主机。您不需要:自己编码。例如,

@GET("/tv.plex.providers.epg.onconnect:23")
Call<MediaContainer> retrieveLibrary();
于 2018-04-28T03:04:09.263 回答