public static String sendAuthRequest(String accessCode) { String response = null; HttpsURLConnection connection = null; try { connection = InfrustructureHelper.createHttpMultipartConn( SynchronizationManager.serverUrl + "authenticate-user"); DataOutputStream request = new DataOutputStream(connection.getOutputStream()); request.writeBytes("--" + boundary + lineEnd); request.writeBytes("Content-Disposition: form-data; name=\"accessCode\"" + lineEnd); request.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd); request.writeBytes("Content-Length: " + SynchronizationService.accessCode + lineEnd); request.writeBytes(lineEnd); Log.i(TAG, "Sending code to server " + accessCode); request.writeBytes(accessCode); request.writeBytes(lineEnd); request.writeBytes("--" + boundary + lineEnd); } catch (IOException e) { e.printStackTrace(); // TODO No Token situation return null; } catch (KeyStoreException e) { e.printStackTrace(); // TODO No Token situation return null; } catch (CertificateException e) { e.printStackTrace(); // TODO No Token situation return null; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); // TODO No Token situation return null; } catch (KeyManagementException e) { e.printStackTrace(); // TODO No Token situation return null; } // parse server response try { if (((HttpURLConnection) connection).getResponseCode() == 200) { InputStream stream = ((HttpURLConnection) connection).getInputStream(); InputStreamReader isReader = new InputStreamReader(stream); BufferedReader br = new BufferedReader(isReader); String line; response = ""; while ((line = br.readLine()) != null) { System.out.println(line); response += line; } } else { Log.e(TAG, "The Code was sent, but Token haven't gotten! (!= 200)"); // TODO No Token situation return null; } } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "The Code was sent, but Token haven't gotten! (IOException)"); // TODO No Token situation return null; } if (response.equals("null")) { return null; } return response; }
public static String sendSyncRequest(File allChangesInXML) { String response = ""; HttpsURLConnection connection = null; try { connection = InfrustructureHelper.createHttpMultipartConn( SynchronizationManager.serverUrl + "get-tasks"); connection.setRequestProperty("Accept-Encoding", ""); System.setProperty("http.keepAlive", "false"); DataOutputStream request = new DataOutputStream(connection.getOutputStream()); request.writeBytes("--" + boundary + lineEnd); if (SynchronizationService.lastSyncTime != null) { // set initSync param request.writeBytes("Content-Disposition: form-data; name=\"lastSyncTime\"" + lineEnd); request.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd); request.writeBytes( "Content-Length: " + SynchronizationService.lastSyncTime.length() + lineEnd); request.writeBytes(lineEnd); request.writeBytes(SynchronizationService.lastSyncTime); request.writeBytes(lineEnd); request.writeBytes("--" + boundary + lineEnd); } // set user identity token if (SynchronizationService.accessToken != null) { request.writeBytes("Content-Disposition: form-data; name=\"accessToken\"" + lineEnd); request.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd); request.writeBytes( "Content-Length: " + SynchronizationService.accessToken.length() + lineEnd); request.writeBytes(lineEnd); Log.i(TAG, "Sending token " + SynchronizationService.accessToken); request.writeBytes(SynchronizationService.accessToken); request.writeBytes(lineEnd); request.writeBytes("--" + boundary + lineEnd); } else { Log.i( TAG, "NO ACCESS_TOKEN!!!"); // TODO Stop service and try to restart with new/may be old // google ACCESS CODE return null; } // attach file with all changes request.writeBytes( "Content-Disposition: form-data; " + "name=\"" + "all_changes_xml" + "\"" + "; filename=\"" + allChangesInXML.getName() + "\"" + lineEnd); request.writeBytes("Content-Type: text/xml" + lineEnd); request.writeBytes("Content-Length: " + allChangesInXML.length() + lineEnd); request.writeBytes(lineEnd); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(allChangesInXML)); byte[] buffer = new byte[(int) allChangesInXML.length()]; bis.read(buffer); request.write(buffer); request.writeBytes(lineEnd); request.writeBytes("--" + boundary + lineEnd); bis.close(); } catch (IOException e) { e.printStackTrace(); CLog.e(TAG, "Sending sync data to server has failed", e); return null; } catch (CertificateException e) { e.printStackTrace(); return null; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return null; } catch (KeyStoreException e) { e.printStackTrace(); return null; } catch (KeyManagementException e) { e.printStackTrace(); return null; } catch (ClassCastException e) { Log.e(TAG, "Probably we have a problem with internet connection"); return null; } // parse server response try { if (((HttpsURLConnection) connection).getResponseCode() == 200) { InputStream stream = ((HttpURLConnection) connection).getInputStream(); InputStreamReader isReader = new InputStreamReader(stream); BufferedReader br = new BufferedReader(isReader); String line; while ((line = br.readLine()) != null) { System.out.println(line); response += line; } } else { Log.e(TAG, "XML file was sent but error on server is occured"); return null; } } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "Getting response sync data from server has failed"); return null; } return response; }