android改造发送数组为x-www-form-urlencoded

问题描述 投票:1回答:1

我正在使用改造作为我的网络库,我想发送一个JSON数组作为x-www-form-urlencoded,但我不知道如何做到这一点。

这是我的请求API:

@POST("book")
@FormUrlEncoded
Call<BookTicket> BookFlight(@Header("Authorization") String authorization,
                             @Header("Content-Type") String content_type,
                             @Field("rootType") Integer rootType ,
                             @Field("BookingStep2")  ArrayList<JSONObject> BookingStep2
            );

这是一个示例请求:

{
  "rootType": 1,
  "BookingStep2": {
    "OriginFlightSegment": {
      "FlightNumber": "sample",
      "Source": "sample",
      "TotalTime": "sample",
      "FareDatas": [
        {
          "PassengerType": 1,
          "Endorsements": "sample",
          "FareBasisCode": "sample"
        },
        {
          "PassengerType": 1,
          "Endorsements": "sample",
          "FareBasisCode": "sample"
        }
      ]
      }
    }
 }

在改造中将JSON数组作为字段发送是否正确?

java android retrofit retrofit2 android-networking
1个回答
1
投票

要将数组对象作为form-url_encoded发布,只需在改造中使用它即可。

@POST(ApiConstants.JOB_CARD_SAVE)
@FormUrlEncoded
Call<MasterResponse<JobCardSaveResponse>> jobCardSave(@FieldMap Map<String, Object> _jobCardRequest,
                                                      @Field("qty[]") List<String> qty,
                                                      @Field("service_id[]") List<String> service_id);

把你的数组对象放在@field中。

© www.soinside.com 2019 - 2024. All rights reserved.