因此,我必须处理POST请求,并将其正文数据从某种形式的输入中获取。该服务的端点是https://someUrl.com/switching-product/switch?orderID=A002&procode=0200011&nip=P19120
邮递员返回的响应类似于this。
此请求的正文如下:
在这种情况下,我具有用于处理POST请求的接口:
///Endpoint: https://someUrl.com/switching-product/switch?orderID=A002&procode=0200011&nip=P19120
interface editProductDetail{
@FormUrlEncoded
@POST("switch")
fun editProductDetail(@Query("orderID") orderID: String,
@Query("procode") procode: String,
@Query("nip") nip : String,
@Field("procode_new") procodeNew: String,
@Field("item_qty_new") itemQtyNew: String,
@Field("item_price_new") itemPriceNew: String,
@Field("item_name_new") itemNameNew: String,
@Field("total_price_new") totalPriceNew: String): Call<OutstandingOrderDetailPOJODataClassDetailItem>
}
这是我使用的数据类:
data class OutstandingOrderDetailPOJODataClassDetailItem(
@field:SerializedName("item_price_new")
val itemPriceNew: Int? = null,
@field:SerializedName("item_name_new")
val itemNameNew: String? = null,
@field:SerializedName("total_price")
val totalPrice: Int? = null,
@field:SerializedName("item_price")
val itemPrice: Int? = null,
@field:SerializedName("item_name")
val itemName: String? = null,
@field:SerializedName("status_refund")
val statusRefund: String? = null,
@field:SerializedName("detail_id")
val detailId: Int? = null,
@field:SerializedName("procode_new")
val procodeNew: String? = null,
@field:SerializedName("refund_date")
val refundDate: String? = null,
@field:SerializedName("request_refund")
val requestRefund: String? = null,
@field:SerializedName("procode")
val procode: String? = null,
@field:SerializedName("last_update")
val lastUpdate: String? = null,
@field:SerializedName("item_qty_new")
val itemQtyNew: Int? = null,
@field:SerializedName("order_id")
val orderId: String? = null,
@field:SerializedName("total_price_new")
val totalPriceNew: Int? = null,
@field:SerializedName("item_qty")
val itemQty: Int? = null,
@field:SerializedName("refund")
val refund: Int? = null
)
如您在上面看到的,主体具有的属性也包含在数据类中。 (此数据类还在使用该服务输入数据的应用程序的相关服务中使用。)>
这是触发POST请求的功能:
NetworkConfig().editOutstandingOrderProductDetailService().editProductDetail( selectedOrderId, selectedProcode, selectedNip, procodeNew, itemNewQty, itemPriceNew, itemNewName, totalPriceNew ).enqueue(object : Callback<OutstandingOrderDetailPOJODataClassDetailItem> { override fun onFailure(call: Call<OutstandingOrderDetailPOJODataClassDetailItem>, t: Throwable) { Log.i("Order", "It Failed!!") if (call.isCanceled) { Toast.makeText((activity as AppCompatActivity), "Request Aborted", Toast.LENGTH_SHORT).show() } else { Toast.makeText((activity as AppCompatActivity), t.localizedMessage, Toast.LENGTH_SHORT).show() } } override fun onResponse( call: Call<OutstandingOrderDetailPOJODataClassDetailItem>, response: Response<OutstandingOrderDetailPOJODataClassDetailItem> ) { Log.i("Order", "Switching Process done!!!") Log.i("Order", "Status: ${response.body()}") } })
[从上面,它像这样在logCat中打印响应:
我在这里想念什么吗?还是我需要改变?如果有任何我想指出的细节,请告诉我!
因此,我必须处理POST请求,并将其正文数据从某种形式的输入中获取。该服务的端点是https://someUrl.com/switching-product/switch?orderID = A002&procode = 0200011&...
您的请求是JSON object
,而不是formurl
。当您想通过@Field