From 0e592a3a0ace4a9d716706916e097bb0ce74c241 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 14 May 2017 18:03:05 +0200 Subject: [PATCH] Fixed #85 - import database from client --- .../budgetmaster/logic/ServerConnection.java | 42 +++++++++++-------- .../server/database/DatabaseImport.java | 2 +- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java b/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java index 4759378f4..45d03440d 100644 --- a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java +++ b/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java @@ -3,6 +3,7 @@ package de.deadlocker8.budgetmaster.logic; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.PrintWriter; import java.lang.reflect.Type; import java.net.URL; import java.security.cert.X509Certificate; @@ -405,23 +406,30 @@ public class ServerConnection public void importDatabase(Database database) throws Exception { - //TODO -// String databaseJSON = new Gson().toJson(database); -// -// URL url = new URL(settings.getUrl() + "/database?secret=" + Helpers.getURLEncodedString(settings.getSecret())); -// HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); -// httpsCon.setRequestMethod("POST"); -// httpsCon.setDoInput(true); -// if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK) -// { -// InputStream stream = httpsCon.getInputStream(); -// BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); -// reader.close(); -// } -// else -// { -// throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode())); -// } + String databaseJSON = new Gson().toJson(database); + + URL url = new URL(settings.getUrl() + "/database?secret=" + Helpers.getURLEncodedString(settings.getSecret())); + HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); + httpsCon.setRequestMethod("POST"); + httpsCon.setRequestProperty("Content-Type", "application/json"); + httpsCon.setRequestProperty("Accept", "application/json"); + httpsCon.setDoInput(true); + httpsCon.setDoOutput(true); + PrintWriter writer = new PrintWriter(httpsCon.getOutputStream()); + writer.write(databaseJSON); + writer.flush(); + writer.close(); + + if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK) + { + InputStream stream = httpsCon.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + reader.close(); + } + else + { + throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode())); + } } /* diff --git a/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java b/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java index d3962efeb..20907d3c3 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java +++ b/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java @@ -26,7 +26,7 @@ public class DatabaseImport implements Route @Override public Object handle(Request req, Response res) throws Exception { - String databaseJSON = req.body(); + String databaseJSON = req.body(); try { -- GitLab