Опубликовать данные JSON с Android на RESTlet NetSuite - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь отправить свои данные json из приложения, созданного на Android, в RESTlet, созданный в NetSuite.

@OnClick(R.id.send_info)
void onClickSendInfoButton() {
    Log.d(TAG, "send information");
    try {
        URL url = new URL("https://rest.netsuite.com/app/site/hosting/restlet.nl?script=3&deploy=1");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestProperty("Authorization", ("NLAuth nlauth_account=XXXXXXXX, nlauth_email=XXX@netsuite.com, nlauth_signature=XXX, nlauth_role=3"));
        conn.setDoOutput(true);
        conn.setDoInput(true);
        //JSON data
        JSONObject data = new JSONObject();

        try {
            data.put("calories_burned", "2000");
            data.put("distance_ran", "4.6");
            data.put("customerId", "508");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        String dataString = data.toString();
        Log.d(TAG, dataString);

Мне удалось получить журнал до Log.d (TAG, dataString);который отображает мои данные JSON правильно.Однако RESTlet не был запущен в моей учетной записи NetSuite.Не было выдано сообщение об ошибке, поэтому я не уверен, почему данные не были отправлены в мой рестлет

        DataOutputStream os = new DataOutputStream(conn.getOutputStream());
        Log.d(TAG, "dataoutputstream");
        os.writeBytes(dataString);
        Log.d(TAG, "writeBytes");
        os.flush();
        Log.d(TAG, "updates on connection" + String.valueOf(conn.getResponseCode()));
        Log.d(TAG, "update on response message" + conn.getResponseMessage());
        Log.i("STATUS", String.valueOf(conn.getResponseCode()));
        Log.i("MSG", conn.getResponseMessage());

        conn.disconnect();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Это мой код для RESTlet.

    function doPost(requestBody) {
        var caloriesBurned = requestBody.calories_burned;
        var distanceRan = requestBody.distance_ran;
        var customer = requestBody.customerId;
        log.debug("caloriesBurned=", caloriesBurned);
        log.debug("distanceRan=", distanceRan);
        log.debug("customer=", customer);
    }
...