diff --git a/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java b/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java index b2f86f82b..579f39196 100644 --- a/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java +++ b/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java @@ -68,7 +68,7 @@ public class SynchroniserService extends Service implements IBookCollection.List System.err.println("HELLO THREAD"); myHashesFromServer.clear(); try { - myNetworkContext.perform(new JsonRequest("all.hashes", null) { + myNetworkContext.perform(new PostRequest("all.hashes", null) { @Override public void processResponse(Object response) { myHashesFromServer.addAll((List)response); @@ -110,22 +110,17 @@ public class SynchroniserService extends Service implements IBookCollection.List } } - private static String toJSON(Object object) { - final StringWriter writer = new StringWriter(); - try { - JSONValue.writeJSONString(object, writer); - } catch (IOException e) { - throw new RuntimeException("JSON serialization failed", e); - } - return writer.toString(); - } - private final static String DOMAIN = "demo.fbreader.org"; private final static String BASE_URL = "https://" + DOMAIN + "/app/"; - private static abstract class JsonRequest extends ZLNetworkRequest.PostWithBody { - JsonRequest(String app, Object data) { - super(BASE_URL + app, toJSON(data), false); + private static abstract class PostRequest extends ZLNetworkRequest.PostWithMap { + PostRequest(String app, Map data) { + super(BASE_URL + app, false); + if (data != null) { + for (Map.Entry entry : data.entrySet()) { + addPostParameter(entry.getKey(), entry.getValue()); + } + } } @Override @@ -190,8 +185,8 @@ public class SynchroniserService extends Service implements IBookCollection.List return; } final Map result = new HashMap(); - final JsonRequest verificationRequest = - new JsonRequest("books.by.hash", Collections.singletonMap("sha1", uid.Id)) { + final PostRequest verificationRequest = + new PostRequest("books.by.hash", Collections.singletonMap("sha1", uid.Id)) { @Override public void processResponse(Object response) { result.put("result", response);