Я пытаюсь отправить свои данные 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);
}