Пришел к обновлению до Retrofit 2.0 и столкнулся с этой странной проблемой.
У меня есть способ зарегистрировать пользователя в
public interface ApiInterface {
@Multipart
@POST("user/login/")
Call<SessionToken> userLogin(@Part("username") String username, @Part("password") String password);
}
Когда я смотрю на ключевые значения POST-параметров на стороне сервера, они печатаются следующим образом
username : "brian"
password : "password"
Тот же метод с использованием модификации 1.9 пары K: V выглядят как
username : brian
password : password
Он добавляет литеральные цитаты к переменным POST
Если я использую любой другой клиент для отдыха, переменные печатаются как второй путь без кавычек.
Вот как я могу создать экземпляр Retrofit с помощью перехватчика
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
// Customize the request
Request request = original.newBuilder()
.header("Accept", "application/json")
.header("Authorization", myPrefs.accessToken().getOr(""))
.method(original.method(), original.body())
.build();
Response response = chain.proceed(request);
// Customize or return the response
return response;
}
});
Ok2Curl.set(client);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(apiEndpoint)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
Я предполагаю, что я делаю что-то неправильно с конвертером, но не уверен, что.
Кто-нибудь еще сталкивался с этой проблемой? Я знаю его в бета-версии, но он довольно широко используется.