-
[안드로이드] Retrofit PUT, DELETE 방식 간단 예제안드로이드(java)/기능 관련 2019. 11. 28. 12:46
이번에는 put, delete 요청하는 방법을 연습해보겠습니다.
[완성 소스 코드] https://github.com/dailyshow/retrofitPUTDELETE
put 은 기존에 있던 내용을 수정할 때 사용합니다.
delete는 내용을 삭제할 때 사용합니다.
PUT 방식을 먼저 보겠습니다.
<JsonPlaceHolderAPI.java>
1234public interface JsonPlaceHolderAPI {@PUT("posts/{id}")Call<Post> putPost(@Path("id") int id, @Body Post post);}cs <MainActivity.java>
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455public class MainActivity extends AppCompatActivity {private final String BASEURL = "http://jsonplaceholder.typicode.com/";private TextView textViewResult;private JsonPlaceHolderAPI jsonPlaceHolderAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textViewResult = findViewById(R.id.text_view_result);Retrofit retrofit = new Retrofit.Builder().baseUrl(BASEURL).addConverterFactory(GsonConverterFactory.create()).build();jsonPlaceHolderAPI = retrofit.create(JsonPlaceHolderAPI.class);updatePost();}public void updatePost(){Post post = new Post(10, null, "새로운 내용");Call<Post> call = jsonPlaceHolderAPI.putPost(5, post);call.enqueue(new Callback<Post>() {@Overridepublic void onResponse(Call<Post> call, Response<Post> response) {if (!response.isSuccessful()){textViewResult.setText("code: " + response.message());return;}Post postResponse = response.body();String content = "";content += "Code : " + response.code() + "\n";content += "Id : " + postResponse.getId() + "\n";content += "User Id : " + postResponse.getUserId() + "\n";content += "Title : " + postResponse.getTitle() + "\n";content += "Text : " + postResponse.getText() + "\n";textViewResult.setText(content);}@Overridepublic void onFailure(Call<Post> call, Throwable t) {textViewResult.setText(t.getMessage());}});}}cs <실행결과>
code 번호가 200번이 나왔네요. 정상적으로 처리되었음을 확인할 수 있습니다.
userid가 10 번인곳에 텍스트항목을 새로운 내용 이란 글로 변경하였습니다.
DELETE 방식에 대해서 확인해보겠습니다.
<JsonPlaceHolderAPI.java>
1234public interface JsonPlaceHolderAPI {@DELETE("posts/{id}")Call<Void> deletePost(@Path("id") int id);}cs <MainActivity.java>
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748public class MainActivity extends AppCompatActivity {private final String BASEURL = "http://jsonplaceholder.typicode.com/";private TextView textViewResult;private JsonPlaceHolderAPI jsonPlaceHolderAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textViewResult = findViewById(R.id.text_view_result);Retrofit retrofit = new Retrofit.Builder().baseUrl(BASEURL).addConverterFactory(GsonConverterFactory.create()).build();jsonPlaceHolderAPI = retrofit.create(JsonPlaceHolderAPI.class);deletePost();}private void deletePost() {Call<Void> call = jsonPlaceHolderAPI.deletePost(5);call.enqueue(new Callback<Void>() {@Overridepublic void onResponse(Call<Void> call, Response<Void> response) {if (!response.isSuccessful()) {textViewResult.setText("code: " + response.message());return;}String content = "";content += "code: " + response.code()+"\n";content += "정상적으로 삭제되었습니다.";textViewResult.setText(content);}@Overridepublic void onFailure(Call<Void> call, Throwable t) {textViewResult.setText(t.getMessage());}});}}cs <결과 화면>
code 번호가 200번이 나왔습니다. 제대로 실행되었네요.
전체 소스 코드는 맨 위에 있습니다.
이상으로 Retrofit의 전체적으로 간략한 사용법을 정리해보았습니다.
'안드로이드(java) > 기능 관련' 카테고리의 다른 글
[안드로이드] Retrofit POST 방식 간단 예제 (0) 2019.11.19 [안드로이드] Retrofit GET 방식 간단 예제 2 (0) 2019.11.14 [안드로이드] Retrofit GET 방식 간단 예제1 (0) 2019.11.14 [안드로이드] FCM 메시지 전송 될 때 진동 되지 않는 증상. (0) 2019.04.03 [안드로이드] ListView 사용하기 (0) 2019.01.30