下面是UpdateResponse类代码
public class UpdateResponse {
@SerializedName("id")
@Expose
private int id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("salary")
@Expose
private String salary;
@SerializedName("age")
@Expose
private String age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String employeeName) {
this.name = employeeName;
}
public String getSalary() {
return salary;
}
public void setSalary(String employeeSalary) {
this.salary = employeeSalary;
}
public String getAge() {
return age;
}
public void setAge(String employeeAge) {
this.age = employeeAge;
}
}
Api接口代码如下
public interface ApiInterface {
@FormUrlEncoded
@PUT("api/v1/update/{id}")
Call<UpdateResponse> updateUser(@Path("id") int id,
@Field("name") String name,
@Field("salary") String salary,
@Field("age") String age);
}
public class Api {
private static Retrofit retrofit = null;
public static ApiInterface getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl("http://dummy.restapiexample.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
ApiInterface api = retrofit.create(ApiInterface.class);
return api;
}
}
下面是作为主活动代码的对话框
String nameStr = name.getText().toString();
String salaryStr = salary.getText().toString();
String ageStr = age.getText().toString();
//idd is getting from mainActivity onitemSelect method, which is having the right id value
Call<UpdateResponse> call= Api.getClient().updateUser(idd,nameStr,salaryStr,ageStr);
call.enqueue(new Callback<UpdateResponse>() {
@Override
public void onResponse(Call<UpdateResponse> call, Response<UpdateResponse> response) {
Toast.makeText(c.getApplicationContext(),"Updated Name: "+response.body().getName(),Toast.LENGTH_LONG).show();
dismiss();
}
@Override
public void onFailure(Call<UpdateResponse> call, Throwable t) {
Toast.makeText(c.getApplicationContext(),"Failure",Toast.LENGTH_LONG).show();
dismiss();
}
});
响应呼叫显示:
call:executerCallAdapterFactory$executerCallbackCall@5922“,并在可抛出的测试中显示”com.google.gson.stream.malformedJsonException:Unterminated object at line 1 column 27 path$.error“。
您需要发送一个json正文
如下所示更改api方法签名
@Headers({"Content-Type: application/json"})
@PUT("api/v1/update/{id}")
Call<ResponseBody> updateUser(@Path("id") int id, @Body UpdateResponse body);
使id瞬态化
public class UpdateResponse {
@SerializedName("id")
@Expose
private transient int id;
//..
UpdateResponse updateResponse = new UpdateResponse();
updateResponse.setName(name.getText().toString());
updateResponse.setSalary(salary.getText().toString());
updateResponse.setAge(age.getText().toString());
Call<UpdateResponse> call= Api.getClient().updateUser(idd, updateResponse);
PUT方法在django rest框架中不起作用。 模型。派克 对应视图 当我请求页面(GET)时,它显示相应的细节(配置文件细节)。但是当我提交页面(PUT)时,它仍然转到部分,而不是。当我使用REST视图时,它工作得很好。问题出在网页视图(html)上。我错过了什么?感谢任何帮助 HTML页面
所以我需要邮递员的文件。问题是我的API需要身份验证,所以我不能使用Swagger来测试它们。当我从控制器中删除授权并使用Swagger时,它会工作,但使用Postman时,它会返回以下错误。 请求的邮递员标题:
问题内容: 我已经为此拉了一段时间了。应该使用以下方法下载文件,并将其保存到硬盘驱动器上指定的位置。 另外,如果文件不存在,则应该为该文件创建目录。(如果该位置已经有另一个文件,则应该什么都不做)。但是,由于某种原因,mkdirs()方法从不创建目录。我已经尝试了从显式括号到显式制作父文件类的所有内容,似乎没有任何效果。我相当确定该驱动器是可写的,因为只有在确定驱动器之后才能调用该驱动器,在调试过
我试图将所有对Rails后端进行api调用的服务整合为一个。它看起来是这样的: POST和GET工作正常,但PUT给了我
我让troulbe通过jsp页面上的ajax函数将path参数输出到servlets doput方法。 我的使用Ajax的jsp页面: 我有get和post方法,因为它们在form action和method属性中以常规方式发送到servelt。 就我所知,Put和delete只能通过ajax或JQuery来完成,我似乎无法理解。 我已经在邮递员身上测试了这个方法,它非常有效。 我真的被困在这个问
问题内容: 在下面的代码中不起作用: 在上面的代码中,我启动了一个检查对象是否不是的对象,并相应地取消了计时器。该对象由某些侦听器在任何时间设置。请参考并提出建议。我在这里做正确的事吗? Gautier Hayoun的解决方案 : 刚刚替代了CountDownTimer,可以从onTick内取消它:Github链接 – Gautier Hayoun 2010年12月12日,1:04 问题答案: G