[英]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.