改造中的 PUT 和 DELETE
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 我需要帮助解决这个问题我的方法是否正确?
`
私人无效 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());
// }
// });
//
// }
`
此注释也可用于发送带有请求正文的 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