-1
我指的是SO Thread,但無法生成適當的API請求。 API請求如下無法發送整個JSON作爲身體參數在API改造2
請求:
{
"clientId": "[email protected]",
"products": {
"productNumber": "8123456789123",
"batchNumber": "123456789",
"quantity": 50,
"salesPrice": 500,
"purchasePrice": 500,
"MRP": 600,
"mfgDate": "15/05/2017",
"expDate": "15/05/2017"
}
}
API接口
@FormUrlEncoded
@POST("/products/addBatch")
public Observable<AddBatchResponse> doAddBatch(@Header(WebServicesTags.TAG_AUTHORIZATION) String token,
@Field(WebServicesTags.TAG_CLIENT_ID) String clientId,
@Body BatchModel product);
和下面是我API調用
BatchModel model = new BatchModel(productNumber, batchNumber, quantity, salesPrice, purchasePrice, mRP, mfgDate, expDate);
Observable<AddBatchResponse> addBatch = apiservice.doAddBatch(sessionManager.getKeyToken(), sessionManager.getKeyEmail(), model);
addBatch.subscribeOn(Schedulers.newThread())
調用此API顯示我下面錯誤
java.lang.IllegalArgumentException異常:@Body參數不能用於 用形式或多部分編碼。
從Api界面中刪除@FormUrlEncoded –
然後顯示@Field參數只能用於表單編碼。 –
然後在JSON模型類中添加clientId,並使用@HEADER發送標頭值。所以最後你的界面如下所示:public Observable doAddBatch(@Body BatchModel product); –