Пошел обновиться до 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();
Я представляю, что делаю что-то не так с конвертером, но не знаю, что именно.
Кто-нибудь еще сталкивался с этой проблемой? Я знаю, что это бета-версия, но она довольно широко используется.
@Multipart
Retrofit строка является элементом@Part
. Сервер получает строку test как test. ФУ!!! - person Matthew Housser   schedule 19.10.2015