在Android中改装GET而不使用值

在Android中改装GET而不使用值,android,json,get,retrofit,retrofit2,Android,Json,Get,Retrofit,Retrofit2,我在大多数调用中都使用改型,但在其中一种情况下,我在参数中提供了完整的路径。我的URL是这样的。此URL是完整提供的,因此我必须在运行时对其进行路径设置。我实现了这里建议的端点 但是在@GET中,我需要能够放置@GET(“”)。这不起作用,因为我收到一个错误,说我应该至少提供一个“/” 如果我添加了URL变成的斜杠,但它不起作用,服务器将返回禁止。我还尝试创建一个类似于此处的自定义GET接口,但是使用GET并且没有在接口中提供值方法。然后,我得到另一个错误,表示缺少值 基本上,我需要能够提供一个

我在大多数调用中都使用改型,但在其中一种情况下,我在参数中提供了完整的路径。我的URL是这样的。此URL是完整提供的,因此我必须在运行时对其进行路径设置。我实现了这里建议的端点 但是在
@GET
中,我需要能够放置
@GET(“”
)。这不起作用,因为我收到一个错误,说我应该至少提供一个“/”

如果我添加了URL变成的斜杠,但它不起作用,服务器将返回禁止。我还尝试创建一个类似于此处的自定义
GET
接口,但是使用
GET
并且没有在接口中提供值方法。然后,我得到另一个错误,表示缺少值

基本上,我需要能够提供一个空或空值,但改装不允许这样做。我怎样才能解决这个问题?目前,我正在手动执行JSON请求,但有没有办法在这种情况下使用改型?我需要传递完整的URL,我无法执行endpoint和
@GET(“/android.json”)
。 谢谢

我尝试过这种方法,但对我来说不起作用

此问题的解决方法是:

//Retrofit interface
public interface TestResourceClient {
    @GET
    Observable<Something> getSomething(@Url String anEmptyString);
}

//client call
Retrofit.Builder().baseUrl("absolute URL").build()
.create(TestResourceClient.class).getSomething("");
//改造接口
公共接口TestResourceClient{
@得到
可观察的getSomething(@Url字符串anemptysting);
}
//客户电话
改装.Builder().baseUrl(“绝对URL”).build()
.create(TestResourceClient.class).getSomething(“”);
此解决方案的缺点是,您必须在
getSomething(“”)
方法调用中提供空字符串。

您可以使用@GET(“”)指示您的url与基本url相同

@GET(".")
Observable<Result> getData(@Query("param") String parameter);
@GET(“.”)
可观察的getData(@Query(“param”)字符串参数);

我在改装2时也面临同样的问题。使用
@GET
@GET(“”
@GET(“.”
并没有解决我的问题

根据,您可以使用相同的
baseUrl
@GET
参数

端点值可以是完整的URL。 具有主机的值将替换baseUrl的主机,同时具有方案的值将替换baseUrl的方案
基本URL:http://example.com/
终点:https://github.com/square/retrofit/
结果:https://github.com/square/retrofit/

就我而言:

interface MyAPI {
    @GET("http://www.omdbapi.com/")
    suspend fun getMovies(
        @Query("apikey") apikey: String,
        @Query("s") s: String
    ): Response<MoviesResponse>

    companion object {
        operator fun invoke(): MyAPI {
            return Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl("http://www.omdbapi.com/")
                .build()
                .create(MyAPI::class.java)
        }
    }
}
接口MyAPI{
@得到(”http://www.omdbapi.com/")
暂停娱乐电影(
@查询(“apikey”)apikey:String,
@查询(“s”)s:String
):回应
伴星{
运算符fun invoke():MyAPI{
return reformation.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(“http://www.omdbapi.com/")
.build()
.create(MyAPI::class.java)
}
}
}

我遇到了同样的问题。我想我们可能需要改装2。