Android 使用整个URL更新2.0 beta 1
在改型2.0中,我只想使用一个url。该url与@GET接口中的基本url相同。我面临获取响应的问题。如果有任何一个在@GET中使用整个url的更好解决方案,请建议解决方案。 这是密码Android 使用整个URL更新2.0 beta 1,android,retrofit,Android,Retrofit,在改型2.0中,我只想使用一个url。该url与@GET接口中的基本url相同。我面临获取响应的问题。如果有任何一个在@GET中使用整个url的更好解决方案,请建议解决方案。 这是密码 public class RestClient { private static ApiInterface apiInterface ; private static String baseUrl = "here is my whole base url";
public class RestClient {
private static ApiInterface apiInterface ;
private static String baseUrl = "here is my whole base url";
public static ApiInterface getClient() {
if (apiInterface == null) {
OkHttpClient okClient = new OkHttpClient();
okClient.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
return response;
}
});
Retrofit client = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverter(String.class, new ToStringConverter())
.client(okClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
apiInterface = client.create(ApiInterface.class);
Log.e("RETROFIT RESPONCE IS...", client.toString());
}
return ApiInterface ;
}
public interface ApiInterface {
@Headers("User-Agent: Retrofit2.0Tutorial-App")
@GET("here is my whole base url”)
Call<EventResult> getEvent();
}
}
公共类RestClient{
专用静态接口;
私有静态字符串baseUrl=“这是我的整个基本url”;
公共静态接口getClient(){
if(apinterface==null){
OkHttpClient okClient=新的OkHttpClient();
okClient.interceptors().add(新的Interceptor()){
@凌驾
公共响应拦截(链)引发IOException{
响应=chain.procedure(chain.request());
返回响应;
}
});
改装客户端=新建改装.Builder()
.baseUrl(baseUrl)
.addConverter(String.class,新的ToStringConverter())
.客户(okClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
apinterface=client.create(apinterface.class);
Log.e(“改装响应为…”,client.toString());
}
返回接口;
}
公共接口{
@标题(“用户代理:2.0Tutorial-App”)
@获取(“这是我的整个基本url”)
调用getEvent();
}
}
我认为这是不可能的,因为BaseURL在改型生成器中是强制性的,即使您向生成器提供完整的URL,生成器也会解析它并只保存BaseURL。我想他们这样做的原因是为了保持它的简单性和一致性
作为参考,您可以查看源代码我认为这是不可能的,因为BaseURL在改装生成器中是强制性的,即使您向生成器提供完整的URL,生成器也会解析它并只保存BaseURL。我想他们这样做的原因是为了保持它的简单性和一致性
作为参考,您可以查看源代码我认为这是不可能的,因为BaseURL在改装生成器中是强制性的,即使您向生成器提供完整的URL,生成器也会解析它并只保存BaseURL。我想他们这样做的原因是为了保持它的简单性和一致性
作为参考,您可以查看源代码我认为这是不可能的,因为BaseURL在改装生成器中是强制性的,即使您向生成器提供完整的URL,生成器也会解析它并只保存BaseURL。我想他们这样做的原因是为了保持它的简单性和一致性
为了便于参考,您可以查看带有改装2的源代码。可以使用
@Url
注释。假设您的改装配置为
Retrofit builder = new Retrofit.Builder()
.baseUrl("http://wwww.example.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
Test r = builder.create(Test.class);
您声明您的接口:
public interface Test {
@GET
Call<Example> getTest(@Url String url);
}
公共接口测试{
@得到
调用getTest(@Url字符串Url);
}
对于
getTest
,您不想使用在配置中声明的baseUrl。@Url
将忽略您声明的baseUrl,并将使用您作为参数提供的baseUrl。如果改型2可以使用@Url
注释。假设您的改型配置是
Retrofit builder = new Retrofit.Builder()
.baseUrl("http://wwww.example.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
Test r = builder.create(Test.class);
您声明您的接口:
public interface Test {
@GET
Call<Example> getTest(@Url String url);
}
公共接口测试{
@得到
调用getTest(@Url字符串Url);
}
对于
getTest
,您不想使用在配置中声明的baseUrl。@Url
将忽略您声明的baseUrl,并将使用您作为参数提供的baseUrl。如果改型2可以使用@Url
注释。假设您的改型配置是
Retrofit builder = new Retrofit.Builder()
.baseUrl("http://wwww.example.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
Test r = builder.create(Test.class);
您声明您的接口:
public interface Test {
@GET
Call<Example> getTest(@Url String url);
}
公共接口测试{
@得到
调用getTest(@Url字符串Url);
}
对于
getTest
,您不想使用在配置中声明的baseUrl。@Url
将忽略您声明的baseUrl,并将使用您作为参数提供的baseUrl。如果改型2可以使用@Url
注释。假设您的改型配置是
Retrofit builder = new Retrofit.Builder()
.baseUrl("http://wwww.example.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
Test r = builder.create(Test.class);
您声明您的接口:
public interface Test {
@GET
Call<Example> getTest(@Url String url);
}
公共接口测试{
@得到
调用getTest(@Url字符串Url);
}
对于
getTest
,您不想使用在配置中声明的baseUrl。@Url
将忽略您声明的baseUrl,并将使用您提供的baseUrl作为参数提供您的代码和问题点。提供您的代码和问题点。提供您的代码和问题点。提供对代码进行反编译,并指出问题所在。