如何点击包含冒号(:)的Retrofit URL?

时间:2018-01-30 07:17:12

标签: java android url httpclient retrofit2

这是我想用Retrofit2点击的网址。 http://makecodeeasy.com:49166/api/Customers

@POST(":49166/api/Customers")
Observable<LoginResponse>
login( @Body LoginRequest loginRequest);

这是我的RetroClient

public static Retrofit callInstance() {

    Gson gson = new GsonBuilder()
            .setLenient()
            .create();
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

    final OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(interceptor)
            .retryOnConnectionFailure(true)
            .readTimeout(30, TimeUnit.SECONDS)
            .connectTimeout(30, TimeUnit.SECONDS).build();


    String ROOT_URL = "http://makecodeeasy.com";
    return new Retrofit.Builder()
            .baseUrl(ROOT_URL)
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .client(client)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
}
  

我收到404 Not Found错误。

2 个答案:

答案 0 :(得分:1)

号码49166是URL上的端口号。

你的ROOT_URL应该是:

String ROOT_URL = "http://makecodeeasy.com:49166";

并使用Retrofit:

@POST("api/Customers")
Observable<LoginResponse>
login( @Body LoginRequest loginRequest);

答案 1 :(得分:0)

实际上,你错了你需要在基本网址中添加你的端口号,你可以在api调用时添加相对网址但是在基本网址中你需要传递包含端口号的完整基本路径。

按以下方式更改基础

String ROOT_URL = "http://makecodeeasy.com:49166";

和相对路径一样

@POST("/api/Customers")