Как пройти "?"в URL android с идентификатором, как мой URL указан ниже - PullRequest
0 голосов
/ 28 января 2019

Мой URL

String BASE_URL = "http://74.207.233.160/api/v1/";

Здесь 17 - это идентификатор, который я хочу передать вручную

Мой интерфейс

public interface MyCandidateApi {

@GET("{user_id}")
Call<MyJobs> matchingcandidates(
        @Path(value = "user_id", encoded = true) String user_id,
        @Header("Authorization") String token
);
}

Я передаю user_id as

Integer id = 17;
String user_id = "candidates?job="+id;

Но когда я запускаю его, URL отображается в этом формате "http://74.207.233.160/api/v1/candidates%3Fjob=17"

Можете ли вы помочь мне решить эту проблему

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Я не уверен в вашем случае использования, но у Retrofit есть способы справиться с этим, что, на мой взгляд, лучше для этого конкретного случая.

Я бы сделал интерфейс следующим образом:

public interface MyCandidateApi {

  @GET("candidates")
  Call<MyJobs> matchingcandidates(
    @Query("job") int user_id,
    @Header("Authorization") String token
  );
}

Таким образом, candidates добавляется к пути автоматически, а также параметр запроса job.Таким образом, вам не нужно беспокоиться о кодировании параметра или даже преобразовании его в строку.Модернизация делает это за вас.

Предполагается, что вы вообще не хотите его кодировать.Судя по твоему вопросу, это желаемое поведение.

0 голосов
/ 28 января 2019

Строка, которая у вас частично закодирована, попробуйте использовать URLDecoder .

String afterDecode = URLDecoder.decode(<your string>, "UTF-8");
...