Возможно, это глупый вопрос, но я пытаюсь включить объект 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);