【发布时间】:2017-12-22 17:28:42
【问题描述】:
我在使用 OKHTTP 3 将参数传输到 heroku 节点服务器时遇到问题。
它可以在 Postman 中正常运行,但不能在 Android 应用程序中运行。
-
Android 代码(底部的 Heroku 日志中未定义参数)
public void makePayment(String phone, String token, String type, double amount, final ResultListener listener){ RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) .setType(MultipartBody.FORM) .addFormDataPart("phoneNumber", phone) .addFormDataPart("serviceType", type) .addFormDataPart("stripeToken", token) .addFormDataPart("serviceCost", String.valueOf(amount)) .build(); final Request request = new Request.Builder() .url(Const.URL_HEROKU_BASE+"payment/charge") .post(requestBody) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { if (listener != null) { listener.onResponse(false, e.getLocalizedMessage()); } } @Override public void onResponse(Call call, Response response) throws IOException { if (listener != null) { listener.onResponse(true, response.body().string()); } } }); } -
Heroku 节点服务器(调试)
router.post('/charge', (req, res, next) => { const phoneNumber = req.body.phoneNumber; const serviceType = req.body.serviceType; const stripeToken = req.body.stripeToken; const serviceCost = req.body.serviceCost; console.log('phoneNumber : ' + phoneNumber); console.log('serviceType : ' + serviceType); console.log('stripeToken : ' + stripeToken); console.log('serviceCost : ' + serviceCost); ... .... .... });
【问题讨论】:
标签: android node.js heroku http-post okhttp3