Передать объект JSON в качестве параметра в запросе Java POST - PullRequest
0 голосов
/ 28 ноября 2018

Возможно, это глупый вопрос, но я пытаюсь включить объект JSON в качестве параметра в запрос на публикацию из приложения Android.Когда сервер принимает запрос, он думает, что объект является нулевым, и я полагаю, что это потому, что ключи обрабатываются как строки.Вот мой код для регистрации объекта:

let address = req.body.shippingAddress;
console.log(address);

А вот вывод журнала:

{"zipCode":"00000","country":"US","city":"New York","name":"Ross","state":"NY","line2":"","email":"ross@example.com","line1":"123 fake st"}

Между тем, тот же журнал, когда я отправляю сообщения из приложения iOS:

{ email: 'ross@example.com',
  city: 'New York',
  line1: '123 fake st',
  name: 'Ross',
  zipCode: '00000',
  line2: '',
  state: 'NY',
  country: 'US' 
}

Вот мой код для поста:

Map<String, Object> paramMap = new HashMap<>();
Gson gson = new Gson();
String shippingJson = gson.toJson(addressMap);
paramMap.put("shippingAddress", shippingJson);
mCompositeSubscription.add(
            mStripeService.createPaymentIntent(paramMap)
               .subscribeOn(Schedulers.io())
               .observeOn(AndroidSchedulers.mainThread())
               .subscribe(new Action1<ResponseBody>() {
                        @Override
                        public void call(ResponseBody response) {
                            try {
                                JSONObject jsonObject = new JSONObject(response.string());
                                listener.onObjectResponse(jsonObject);
                            } catch (JSONException exception) {
                                Log.e("Stripe", exception.toString());
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }, new Action1<Throwable>() {
                        @Override
                        public void call(Throwable throwable) {
                            listener.onObjectResponse(throwable);
                        }
                    })
);

И Служба нашивки:

@FormUrlEncoded
@POST("stripeCreateCharge")
Observable<ResponseBody> createPaymentIntent(@FieldMap Map<String, Object> params);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...