改造请求导致 "TransactionTooLargeException"

Retrofit request causes "TransactionTooLargeException"

我想制作一个在线商店应用程序,但我没有自己的网站,我尝试集成 Paypal 网关,但我无法始终收到错误请求:/现在我正在尝试集成 Wix REST Api 与 android 使用改造,但我也收到了一个错误的请求!当我进行一些更改时,应用程序崩溃了,这是所需的申请表

curl 'https://www.wixapis.com/stores/v2/orders' \
--data-binary '{
             "order": {
               "totals": {
                 "subtotal": "10",
                 "total": "10"
               },
               "billingInfo": {
                 "address": {
                   "email": "Ivanushka@example.com"
                 }
               },
               "shippingInfo": {
                 "shipmentDetails": {
                   "address": {
                     "email": "Ivanushka@example.com"
                   }
                 }
               },
               "paymentStatus": "PAID",
               "lineItems": [
                 {
                   "quantity": 1,
                   "name": "my product",
                   "priceData": {
                     "price": "10"
                   }
                 }
               ],
               "channelInfo": {
                 "type": "WEB"
               }
             }
           }' \
   -H 'Content-Type: application/json' \
   -H 'Authorization: nlWBX5XkeD0rsXxVLhAkJgme- OZjkku8LzPG2LmVZBs.eyJpbnN0YW5jZUlkIjoiNjI0MDEyYjctMzQ5YS00MTEwLWE0NjQtN2M5NjY3OWU3ZjljIiwiYXBwRGVmSWQiOiIyMmJlZjM0NS0zYzViLTRjMTgtYjc4Mi03NGQ0MDg1MTEyZmYiLCJtZXRhU2l0ZUlkIjoiNjI0MDEyYjctMzQ5YS00MTEwLWE0NjQtN2M5NjY3OWU3ZjljIiwic2lnbkRhdGUiOiIyMDIwLTA5LTE3VDEwOjQyOjM2LjYwMVoiLCJ1aWQiOiI2ZmJkN2Y1Zi1kZjU5LTQzZTYtOGFiNy1mNGY1M2FmNTE0NGQiLCJwZXJtaXNzaW9ucyI6Ik9XTkVSIiwiZGVtb01vZGUiOmZhbHNlLCJzaXRlT3duZXJJZCI6IjZmYmQ3ZjVmLWRmNTktNDNlNi04YWI3LWY0ZjUzYWY1MTQ0ZCIsInNpdGVNZW1iZXJJZCI6IjZmYmQ3ZjVmLWRmNTktNDNlNi04YWI3LWY0ZjUzYWY1MTQ0ZCIsImV4cGlyYXRpb25EYXRlIjoiMjAyMC0wOS0xN1QxNDo0MjozNi42MDFaIiwibG9naW5BY2NvdW50SWQiOiI2ZmJkN2Y1Zi1kZjU5LTQzZTYtOGFiNy1mNGY1M2FmNTE0NGQifQ'

我首先使用 FieldMap 注释发送数据,但收到错误请求,所以我使用 JsonArray,但出现 TransactionTooLarge 异常,这是代码

 String Url = "https://www.wixapis.com/";
    Gson gson = new GsonBuilder().setLenient().create();
    Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(Url).build();
    orderRequest Order = retrofit.create(orderRequest.class);
    JsonObject Data = new JsonObject();

    JsonObject totals = new JsonObject();
    JsonArray lineItems = new JsonArray();
    JsonObject itemsObject = new JsonObject() ;
    JsonObject priceData = new JsonObject();
    priceData.addProperty("price","10");
    itemsObject.addProperty("quantity","1");
    itemsObject.addProperty("name","Product");
    itemsObject.add("priceData",priceData);
    lineItems.add(itemsObject);
    totals.addProperty("total","10");
    totals.addProperty("subtotal","10");
    Data.add("totals",totals);
    Data.add("lineItems",lineItems);
    JsonObject bigData = new JsonObject();
    bigData.add("order",bigData);
    Order.Order("application/json","nlWBX5XkeD0rsXxVLhAkJgme-OZjkku8LzPG2LmVZBs.eyJpbnN0YW5jZUlkIjoiNjI0MDEyYjctMzQ5YS00MTEwLWE0NjQtN2M5NjY3OW" +
                    "U3ZjljIiwiYXBwRGVmSWQiOiIyMmJlZjM0NS0zYzViLTRjMTgtYjc4Mi03NGQ0MDg1MTEyZmYiLCJtZXRhU2l0ZUlkIjoiNjI0MDEyYjctMzQ5YS00MTEwLWE0NjQtN2M5NjY3OWU3" +
                    "ZjljIiwic2lnbkRhdGUiOiIyMDIwLTA5LTE3VDEwOjQyOjM2LjYwMVoiLCJ1aWQiOiI2ZmJkN2Y1Zi1kZjU5LTQzZTYtOGFiNy1mNGY1M2FmNTE0NGQiLCJwZXJtaXNzaW9ucyI6Ik9" +
                    "XTkVSIiwiZGVtb01vZGUiOmZhbHNlLCJzaXRlT3duZXJJZCI6IjZmYmQ3ZjVmLWRmNTktNDNlNi04YWI3LWY0ZjUzYWY1MTQ0ZCIsInNpdGVNZW1iZXJJZCI6IjZmYmQ3ZjVmLWRmNTkt" +
                    "NDNlNi04YWI3LWY0ZjUzYWY1MTQ0ZCIsImV4cGlyYXRpb25EYXRlIjoiMjAyMC0wOS0xN1QxNDo0MjozNi42MDFaIiwibG9naW5BY2NvdW50SWQiOiI2ZmJkN2Y1Zi1kZjU5LTQzZTYtOG" +
                    "FiNy1mNGY1M2FmNTE0NGQifQ",
            bigData).enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            try {
                Log.d("RESPONSE",response.errorBody().string()+call.request().toString());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onFailure(Call<String> call, Throwable t) {

        }
    });

如果需要,这里是改装界面

@POST("stores/v2/orders")
Call<String> Order(@Header("Content-Type") String ContentType, @Header("Authorization")String Auth, @Body JsonObject Order );

您正在 json 对象中使用大数据中的大数据

我认为你需要更换这个

JsonObject bigData = new JsonObject();
    bigData.add("order",bigData);

有了这个

  JsonObject bigData = new JsonObject();
        bigData.add("order",Data );