Android 如何发送带有改型字符串和数组列表的PUT请求我需要使用URL编码的模型
有人能告诉我如何用这个json发送PUT请求吗Android 如何发送带有改型字符串和数组列表的PUT请求我需要使用URL编码的模型,android,json,retrofit2,Android,Json,Retrofit2,有人能告诉我如何用这个json发送PUT请求吗 { "delivery_status": "Partially Completed", "signatures": "==skdjfkjdsakjhfoiuewyrdskjhfjdsaf", "assignee_note": "this is remarks and and and nothing", "id": "this is remarks and and and nothing", "returned_products
{
"delivery_status": "Partially Completed",
"signatures": "==skdjfkjdsakjhfoiuewyrdskjhfjdsaf",
"assignee_note": "this is remarks and and and nothing",
"id": "this is remarks and and and nothing",
"returned_products": [
{
"id": "18",
"quantity": 3,
"reasons": "i dont know reason .. bus wapis a gya saman :-)"
},
{
"id": "19",
"quantity": 4,
"reasons": "i dont know reason .. bus wapis a gya saman :-)"
}
]
}
以下是我尝试过但失败的东西
@FormUrlEncoded
@PUT("delivery_notes/update/1.json")
Call<UploadDeliveryNote> postDeliveryNote(
@Field("returned_products[]") ArrayList<ReturnedProduct> returned_products,
@Field("delivery_status") String deliveryStatus,
@Field("signatures") String signatures,
@Field("id") String id,
@Field("assignee_note") String note
);
@FormUrlEncoded
@PUT(“delivery\u notes/update/1.json”)
邮寄通知(
@字段(“退货产品[]”)ArrayList退货产品,
@字段(“交货状态”)字符串交货状态,
@字段(“签名”)字符串签名,
@字段(“id”)字符串id,
@字段(“受让人注释”)字符串注释
);
但是失败了,然后尝试了这个
@Headers("Content-Type: application/json")
@PUT("delivery_notes/update/1.json")
Call<UploadDeliveryNote> postDeliveryNote(@Body String body);
@Headers(“内容类型:application/json”)
@PUT(“delivery\u notes/update/1.json”)
调用postDeliveryNote(@Body字符串Body);
我在这方面做错了什么?
我的主要问题是我正在发送简单的字符串,模型的一个对象是返回的产品的模型列表
提前感谢。有很多方法可以通过改装来实现此调用,我认为最简单的方法就是制作模型类 你的电话看起来像-
@PUT(""delivery_notes/update/1.json"")
Call<ApiResponse<UploadDeliveryNote>> postDeliveryNote(@Body Example example);
Example.java
public class Example {
@SerializedName("delivery_status")
@Expose
private String deliveryStatus;
@SerializedName("signatures")
@Expose
private String signatures;
@SerializedName("assignee_note")
@Expose
private String assigneeNote;
@SerializedName("id")
@Expose
private String id;
@SerializedName("returned_products")
@Expose
private List<ReturnedProduct> returnedProducts = null;
public String getDeliveryStatus() {
return deliveryStatus;
}
public void setDeliveryStatus(String deliveryStatus) {
this.deliveryStatus = deliveryStatus;
}
public String getSignatures() {
return signatures;
}
public void setSignatures(String signatures) {
this.signatures = signatures;
}
public String getAssigneeNote() {
return assigneeNote;
}
public void setAssigneeNote(String assigneeNote) {
this.assigneeNote = assigneeNote;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<ReturnedProduct> getReturnedProducts() {
return returnedProducts;
}
public void setReturnedProducts(List<ReturnedProduct> returnedProducts) {
this.returnedProducts = returnedProducts;
}
}
当您有复杂的请求时使用@Body我也尝试使用@Body我需要使用URLencodedI从未使用过带有@Field注释的模型,所以不能告诉您相同的情况。让我知道你的要求,这样我就可以告诉你,如果有的话。
public class Example {
@SerializedName("delivery_status")
@Expose
private String deliveryStatus;
@SerializedName("signatures")
@Expose
private String signatures;
@SerializedName("assignee_note")
@Expose
private String assigneeNote;
@SerializedName("id")
@Expose
private String id;
@SerializedName("returned_products")
@Expose
private List<ReturnedProduct> returnedProducts = null;
public String getDeliveryStatus() {
return deliveryStatus;
}
public void setDeliveryStatus(String deliveryStatus) {
this.deliveryStatus = deliveryStatus;
}
public String getSignatures() {
return signatures;
}
public void setSignatures(String signatures) {
this.signatures = signatures;
}
public String getAssigneeNote() {
return assigneeNote;
}
public void setAssigneeNote(String assigneeNote) {
this.assigneeNote = assigneeNote;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<ReturnedProduct> getReturnedProducts() {
return returnedProducts;
}
public void setReturnedProducts(List<ReturnedProduct> returnedProducts) {
this.returnedProducts = returnedProducts;
}
}
public class ReturnedProduct {
@SerializedName("id")
@Expose
private String id;
@SerializedName("quantity")
@Expose
private int quantity;
@SerializedName("reasons")
@Expose
private String reasons;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public String getReasons() {
return reasons;
}
public void setReasons(String reasons) {
this.reasons = reasons;
}
}