如何保存我从客户端发送到服务器的字符串值?

时间:2016-01-09 20:28:16

标签: java android json java-ee heroku

我正在创建一个从客户端向服务器发送信息的android应用程序。我正在尝试将JSON对象从客户端发送到服务器端,但我不知道如何将其保存在服务器端,然后再将其发送回客户端。

我是Heroku服务器和java ee的新手,所以我不知道如何编写服务器端代码。

以下是客户端代码:

public class JsonHeroku {

public void executeGet()
{
    new JsonAsyncTask().execute();
}

class JsonAsyncTask extends AsyncTask<Void, Void, String> {

    protected void onPreExecute() {

    }

    @Override
    protected String doInBackground(Void... params) {

        try {
            URL url;
            URLConnection urlConn;
            DataOutputStream printout;
            DataInputStream  input;
            url = new URL ("https://shrouded-lake-7996.herokuapp.com/json");
            urlConn = url.openConnection();
            urlConn.setDoInput (true);
            urlConn.setDoOutput (true);
            urlConn.setUseCaches (false);
            urlConn.setRequestProperty("Content-Type","application/json");
            urlConn.setRequestProperty("Host", "android.schoolportal.gr");
            urlConn.connect();
            //Create JSONObject here
            JSONObject jsonParam = new JSONObject();
            jsonParam.put("ID", "25");
            jsonParam.put("description", "Real");
            jsonParam.put("enable", "true");

            String str = jsonParam.toString();
            byte[] data=str.getBytes("UTF-8");

            // Send POST output.
            printout = new DataOutputStream(urlConn.getOutputStream ());
            printout.write(data);
            printout.flush ();
            printout.close ();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    protected void onPostExecute(String content) {

        System.out.println("DONE ----------------------------");
        System.out.println(content);
    }
}

}

现在我必须将它保存在Heroku服务器中:

public class Main {
  public static void main(String[] args) {

port(Integer.valueOf(System.getenv("PORT")));
staticFileLocation("/public");

get("/parse", (req, res) -> {

    // What do i write here?
  return "Hey baby";

});

get("/", (request, response) -> {
        Map<String, Object> attributes = new HashMap<>();
        attributes.put("message", "Hello World!");

        return new ModelAndView(attributes, "index.ftl");
    }, new FreeMarkerEngine());
  }

}

如果你能告诉我如何回应客户端会很棒。

谢谢。

1 个答案:

答案 0 :(得分:2)

如果您需要在服务器上保存某些内容,则需要将其放在数据库中。这是关于Connecting to Relational Databases on Heroku with Java的文章。