не выполняется запрос delete google rest api

364
22 апреля 2017, 22:44
public static final String BASE_URL = "https://www.googleapis.com/";
public static OAuthServerIntf getOAuthClient(Context ctx) {
    Retrofit raCustom = new Retrofit.Builder()
            .client(getOAuthOkHttpClient(ctx))
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    OAuthServerIntf webServer = raCustom.create(OAuthServerIntf.class);
    return webServer;
}

Вот интерфейс:

public interface OAuthServerIntf {
    @DELETE("drive/v3/files/{fileId}")
    Call<Runnable> deleteFile(@Field("fileId")String fileId);
}

Вот, где обрабатывается

 private void knopka (){
    OAuthServerIntf server=RetrofitBuilder.getOAuthClient(this);
    Call deleteFile=server.deleteFile("1avihf1YqkvD3Aop8qbZe9OVRUd_lSAHEbFsVzOLoL_8");
    deleteFile.enqueue(new Callback<Response>() {
        @Override
        public void onResponse(Call<Response> call, Response<Response> response) {
            Log.w(TAG,"norm");
        }
        @Override
        public void onFailure(Call<Response> call, Throwable t) {
            Log.w(TAG,"nenorm");
        }
    });
}

приложение падает на момент отправки запроса, появляются exception. ничего не возвращает. даже как то странно.

вот сами exception:

java.lang.IllegalArgumentException: @Field parameters can only be used with form encoding. (parameter #1) for method OAuthServerIntf.deleteFile

Answer 1

Т.к. ID файла в запросе указывается в качестве части пути запроса, то вам надо использовать аннотацию @Path так:

@DELETE("drive/v3/files/{fileId}")
Call<Runnable> deleteFile(@Path("fileId")String fileId);
READ ALSO
Как добавить JScrollPane к JLabel?

Как добавить JScrollPane к JLabel?

Как можно добавить JScrollPane к JLabel? Добавил через add(new JScrollPane(label, две константы)), но скролл не работает (сама иконка как бы есть, но не реагирует...

366
RecyclerView по нажатию на элемент изменить изображение

RecyclerView по нажатию на элемент изменить изображение

Изначально вывожу в RecyclerView 40 элементов (изображений с крестиками)Заполняю адаптер:

258
Как обращаться к серверу каждые 5 секунд?

Как обращаться к серверу каждые 5 секунд?

Дело в том что до сегодняшнего дня я для общения с сервером использовал Volley и каждые определенные время отправлял запросНо теперь мне предстоит...

321
Xamarin vs. iOS / android

Xamarin vs. iOS / android

Понимаю, что вопрос не совсем технический, но интересно мнениеУ меня сейчас около 8 лет разработки на С#

344