簡體   English   中英

在 RETROFIT 中放入和刪除

[英]PUT and DELETE in RETROFIT

大家好,我確實有一個服務器,其中的數據看起來像這樣 someurl/jasonfakeAPI/tracks

    {
      "id": "7fmVIBMLYiXRtTFOlxv90i"
    }

我想對我的 android 代碼發出 PUT 和 DELETE 請求 我發出了這樣的請求

    @PUT("tracks")
    Call<likeDislike> putlike(@Body likeDislike like);

    @HTTP(method = "DELETE", path = "tracks", hasBody = true)
    Call<likeDislike> deletelike(@Body likeDislike like);

在我的代碼中,我實現了這樣的功能,但是刪除時我得到了 404,我需要幫助解決這個問題,我的方法是否正確?

` private void putlike() {

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("jasonfakeAPI/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);

        likeDislike likee=new likeDislike("ubvjksdbvxnudb");
        Call<likeDislike> likeee = jsonPlaceHolderApi.putlike(likee);

        likeee.enqueue(new Callback<likeDislike>() {
            @Override
            public void onResponse(Call<likeDislike> call, Response<likeDislike> response) {
                if (!response.isSuccessful()) {
                    textViewResult.setText("Code: " + response.code());
                    return;
                }

                likeDislike likeResponse = response.body();
                String content = "";
                content += "Code:" + response.code()+"\n";
                content += "ID: " + likeResponse.getId() + "\n";
                textViewResult.setText(content);

            }


            @Override
            public void onFailure(Call<likeDislike> call, Throwable t) {
                textViewResult.setText(t.getMessage());
            }
        });

    }

//    private void deletelike() {
//
//        Retrofit retrofit = new Retrofit.Builder()
//                .baseUrl("jasonfakeAPI/")
//                .addConverterFactory(GsonConverterFactory.create())
//                .build();
//        JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
//
//
//        Call<Void> likeee = jsonPlaceHolderApi.deletelike("7fmVIBMLYiXRtTFOlxv90i");
//
//        likeee.enqueue(new Callback<Void>() {
//            @Override
//            public void onResponse(Call<Void> call, Response<Void> response) {
//                textViewResult.setText("Code: " + response.code());
//            }
//
//            @Override
//            public void onFailure(Call<Void> call, Throwable t) {
//                textViewResult.setText(t.getMessage());
//            }
//        });
//
//    }

`

此注釋還可以用於發送帶有請求正文的 DELETE:

interface Service {
   @HTTP(method = "DELETE", path = "remove/", hasBody = true)
   Call<ResponseBody> deleteObject(@Body RequestBody object);
 }

參考: https://square.github.io/retrofit/2.x/retrofit/retrofit2/http/HTTP.html

大家好,我確實有一個服務器,其數據看起來像這樣 someurl/jasonfakeAPI/tracks

    {
      "id": "7fmVIBMLYiXRtTFOlxv90i"
    }

我想對我的 android 代碼提出 PUT 和 DELETE 請求,我提出了這樣的請求

    @PUT("tracks")
    Call<likeDislike> putlike(@Body likeDislike like);

    @HTTP(method = "DELETE", path = "tracks", hasBody = true)
    Call<likeDislike> deletelike(@Body likeDislike like);

在我的代碼中,我實現了這樣的功能,但是刪除后我得到了 404,我需要幫助解決這個問題,我的方法是否正確?

`私人無效putlike(){

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("jasonfakeAPI/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);

        likeDislike likee=new likeDislike("ubvjksdbvxnudb");
        Call<likeDislike> likeee = jsonPlaceHolderApi.putlike(likee);

        likeee.enqueue(new Callback<likeDislike>() {
            @Override
            public void onResponse(Call<likeDislike> call, Response<likeDislike> response) {
                if (!response.isSuccessful()) {
                    textViewResult.setText("Code: " + response.code());
                    return;
                }

                likeDislike likeResponse = response.body();
                String content = "";
                content += "Code:" + response.code()+"\n";
                content += "ID: " + likeResponse.getId() + "\n";
                textViewResult.setText(content);

            }


            @Override
            public void onFailure(Call<likeDislike> call, Throwable t) {
                textViewResult.setText(t.getMessage());
            }
        });

    }

//    private void deletelike() {
//
//        Retrofit retrofit = new Retrofit.Builder()
//                .baseUrl("jasonfakeAPI/")
//                .addConverterFactory(GsonConverterFactory.create())
//                .build();
//        JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
//
//
//        Call<Void> likeee = jsonPlaceHolderApi.deletelike("7fmVIBMLYiXRtTFOlxv90i");
//
//        likeee.enqueue(new Callback<Void>() {
//            @Override
//            public void onResponse(Call<Void> call, Response<Void> response) {
//                textViewResult.setText("Code: " + response.code());
//            }
//
//            @Override
//            public void onFailure(Call<Void> call, Throwable t) {
//                textViewResult.setText(t.getMessage());
//            }
//        });
//
//    }

`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM