List of usage examples for org.json JSONObject put
public JSONObject put(String key, Object value) throws JSONException
From source file:org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.java
/** * Send HTTP request to using {@link HttpsURLConnection} in JSON format. * /*from w ww. ja v a 2 s . c o m*/ * @param endPoint String End point URL. * @param httpMethod String HTTP method type (GET, POST, PUT etc.) * @param headersMap Map<String, String> Headers need to send to the end point. * @param requestFileName String File name of the file which contains request body data. * @param parametersMap Map<String, String> Additional parameters which is not predefined in the * properties file. * @param isIgnoreHostVerification boolean flag to ignore host verification. * @return RestResponse object. * @throws JSONException * @throws IOException */ protected RestResponse<JSONObject> sendJsonRestRequestHTTPS(String endPoint, String httpMethod, Map<String, String> headersMap, String requestFileName, Map<String, String> parametersMap, boolean isIgnoreHostVerification) throws IOException, JSONException { HttpsURLConnection httpsConnection = writeRequestHTTPS(endPoint, httpMethod, RestResponse.JSON_TYPE, headersMap, requestFileName, parametersMap, isIgnoreHostVerification); String responseString = readResponseHTTPS(httpsConnection); RestResponse<JSONObject> restResponse = new RestResponse<JSONObject>(); restResponse.setHttpStatusCode(httpsConnection.getResponseCode()); restResponse.setHeadersMap(httpsConnection.getHeaderFields()); if (responseString != null) { JSONObject jsonObject = null; if (isValidJSON(responseString)) { jsonObject = new JSONObject(responseString); } else { jsonObject = new JSONObject(); jsonObject.put("output", responseString); } restResponse.setBody(jsonObject); } return restResponse; }
From source file:org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.java
/** * Send HTTP request using {@link HttpURLConnection} in JSON format. * /*from w ww . j a v a 2s . c om*/ * @param endPoint String End point URL. * @param httpMethod String HTTP method type (POST, PUT) * @param headersMap Map<String, String> Headers need to send to the end point. * @param fileName File name of the attachment to set as binary content. * @return RestResponse object. * @throws JSONException * @throws IOException */ protected RestResponse<JSONObject> sendBinaryContentForJsonResponse(String endPoint, String httpMethod, Map<String, String> headersMap, String fileName) throws IOException, JSONException { HttpURLConnection httpConnection = writeRequest(endPoint, httpMethod, RestResponse.JSON_TYPE, headersMap, fileName, true); String responseString = readResponse(httpConnection); RestResponse<JSONObject> restResponse = new RestResponse<JSONObject>(); restResponse.setHttpStatusCode(httpConnection.getResponseCode()); restResponse.setHeadersMap(httpConnection.getHeaderFields()); if (responseString != null) { JSONObject jsonObject = null; if (isValidJSON(responseString)) { jsonObject = new JSONObject(responseString); } else { jsonObject = new JSONObject(); jsonObject.put("output", responseString); } restResponse.setBody(jsonObject); } return restResponse; }
From source file:org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.java
/** * Send HTTPS request using {@link HttpsURLConnection} in JSON format. * //from w w w. j a v a 2s. co m * @param endPoint String End point URL. * @param httpsMethod String HTTPS method type (POST, PUT) * @param headersMap Map<String, String> Headers need to send to the end point. * @param fileName File name of the attachment to set as binary content. * @return RestResponse object. * @throws JSONException * @throws IOException */ protected RestResponse<JSONObject> sendBinaryContentForJsonResponseHTTPS(String endPoint, String httpMethod, Map<String, String> headersMap, String fileName) throws IOException, JSONException { HttpsURLConnection httpsConnection = writeRequestHTTPS(endPoint, httpMethod, RestResponse.JSON_TYPE, headersMap, fileName, true); String responseString = readResponse(httpsConnection); RestResponse<JSONObject> restResponse = new RestResponse<JSONObject>(); restResponse.setHttpStatusCode(httpsConnection.getResponseCode()); restResponse.setHeadersMap(httpsConnection.getHeaderFields()); if (responseString != null) { JSONObject jsonObject = null; if (isValidJSON(responseString)) { jsonObject = new JSONObject(responseString); } else { jsonObject = new JSONObject(); jsonObject.put("output", responseString); } restResponse.setBody(jsonObject); } return restResponse; }
From source file:org.csp.everyaware.internet.StoreAndForwardService.java
public void postTags() throws IllegalArgumentException, ClientProtocolException, HttpHostConnectException, IOException { Log.d("StoreAndForwardService", "postTags()"); int sepIndex = 1; //default is '.' separator (see Constants.separators array) if ((Utils.report_country != null) && (Utils.report_country.equals("IT"))) sepIndex = 0; //0 is for '-' separator (for italian CSP server) List<String> sids = mDbManager.getSidsOfRecordsWithTags(); if ((sids != null) && (sids.size() > 0)) { for (int i = 0; i < sids.size(); i++) { String sessionId = (String) sids.get(i); //load records containing user tags with actual session id List<Record> recordsWithTags = mDbManager.loadRecordsWithTagBySessionId(sessionId); if ((recordsWithTags != null) && (recordsWithTags.size() > 0)) { //get size of array of records containing tags and reference to the last record int size = recordsWithTags.size(); //obtain reference to the last record of serie Record lastToSendRecord = recordsWithTags.get(size - 1); Log.d("StoreAndForwardService", "postTags()--> # of records containing tags: " + size); //save timestamp of last record containing tags long lastTimestamp = 0; if (lastToSendRecord.mSysTimestamp > 0) lastTimestamp = lastToSendRecord.mSysTimestamp; else lastTimestamp = lastToSendRecord.mBoxTimestamp; String lastTsFormatted = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSSz", Locale.US) .format(new Date(lastTimestamp)); //********* MAKING OF HTTP HEADER ************** DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(Utils.report_url); httpPost.setHeader("Content-Encoding", "gzip"); httpPost.setHeader("Content-Type", "application/json"); httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("User-Agent", "AirProbe" + Utils.appVer); // ******* authorization bearer header ******** httpPost.setHeader("Authorization", "Bearer " + Utils.getAccessToken(getApplicationContext())); //******** meta header (for new version API V1) httpPost.setHeader("meta" + Constants.separators[sepIndex] + "timestampRecorded", lastTsFormatted); httpPost.setHeader("meta" + Constants.separators[sepIndex] + "deviceId", Utils.deviceID); httpPost.setHeader("meta" + Constants.separators[sepIndex] + "installId", Utils.installID); //******** data header (for new version API V1) //httpPost.setHeader("data"+Constants.separators[sepIndex]+"extendedPacketId", ""); //httpPost.setHeader("data"+Constants.separators[sepIndex]+"extendedPacketPointId", ""); //httpPost.setHeader("data"+Constants.separators[sepIndex]+"extendedSessionId", ""); //deprecated from AP 1.4 httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "type", "airprobe_tags"); httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "format", "json"); //httpPost.setHeader("data"+Constants.separators[sepIndex]+"contentDetails"+Constants.separators[sepIndex]+"specification", "at-3"); //deprecated from AP 1.4 if (size > 1) httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "list", "true"); else httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "list", "false"); httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "listSize", String.valueOf(size)); /* from AP 1.4 */ if ((lastToSendRecord.mBoxMac != null) && (!lastToSendRecord.mBoxMac.equals(""))) httpPost.setHeader("meta" + Constants.separators[sepIndex] + "sourceId", lastToSendRecord.mBoxMac); httpPost.setHeader("data" + Constants.separators[sepIndex] + "extendedSourceSessionId" + Constants.separators[sepIndex] + "seed", lastToSendRecord.mSourceSessionSeed); httpPost.setHeader(//from www .ja va 2 s .c o m "data" + Constants.separators[sepIndex] + "extendedSourceSessionId" + Constants.separators[sepIndex] + "number", String.valueOf(lastToSendRecord.mSourceSessionNumber)); if ((lastToSendRecord.mSemanticSessionSeed != null) && (!lastToSendRecord.mSemanticSessionSeed.equals(""))) { httpPost.setHeader( "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId" + Constants.separators[sepIndex] + "seed", lastToSendRecord.mSemanticSessionSeed); httpPost.setHeader( "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId" + Constants.separators[sepIndex] + "number", String.valueOf(lastToSendRecord.mSemanticSessionNumber)); } httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "typeVersion", "30"); //update by increment this field on header changes /* end of from AP 1.4 */ //******** geo header (for new version API V1) //add the right provider to header if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[0])) //sensor box { httpPost.setHeader("geo" + Constants.separators[sepIndex] + "longitude", String.valueOf(lastToSendRecord.mBoxLon)); httpPost.setHeader("geo" + Constants.separators[sepIndex] + "latitude", String.valueOf(lastToSendRecord.mBoxLat)); if (lastToSendRecord.mBoxAcc != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "hdop", String.valueOf(lastToSendRecord.mBoxAcc)); //from AP 1.4 if (lastToSendRecord.mBoxAltitude != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "altitude", String.valueOf(lastToSendRecord.mBoxAltitude)); //from AP 1.4 if (lastToSendRecord.mBoxSpeed != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "speed", String.valueOf(lastToSendRecord.mBoxSpeed)); //from AP 1.4 if (lastToSendRecord.mBoxBear != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "bearing", String.valueOf(lastToSendRecord.mBoxBear)); //from AP 1.4 httpPost.setHeader("geo" + Constants.separators[sepIndex] + "provider", lastToSendRecord.mGpsProvider); httpPost.setHeader("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted); } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[1])) //phone { httpPost.setHeader("geo" + Constants.separators[sepIndex] + "longitude", String.valueOf(lastToSendRecord.mPhoneLon)); httpPost.setHeader("geo" + Constants.separators[sepIndex] + "latitude", String.valueOf(lastToSendRecord.mPhoneLat)); if (lastToSendRecord.mPhoneAcc != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "accuracy", String.valueOf(lastToSendRecord.mPhoneAcc)); if (lastToSendRecord.mPhoneAltitude != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "altitude", String.valueOf(lastToSendRecord.mPhoneAltitude)); //from AP 1.4 if (lastToSendRecord.mPhoneSpeed != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "speed", String.valueOf(lastToSendRecord.mPhoneSpeed)); //from AP 1.4 if (lastToSendRecord.mPhoneBear != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "bearing", String.valueOf(lastToSendRecord.mPhoneBear)); //from AP 1.4 httpPost.setHeader("geo" + Constants.separators[sepIndex] + "provider", lastToSendRecord.mGpsProvider); httpPost.setHeader("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted); } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[2])) //network { httpPost.setHeader("geo" + Constants.separators[sepIndex] + "longitude", String.valueOf(lastToSendRecord.mNetworkLon)); httpPost.setHeader("geo" + Constants.separators[sepIndex] + "latitude", String.valueOf(lastToSendRecord.mNetworkLat)); if (lastToSendRecord.mNetworkAcc != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "accuracy", String.valueOf(lastToSendRecord.mNetworkAcc)); if (lastToSendRecord.mNetworkAltitude != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "altitude", String.valueOf(lastToSendRecord.mNetworkAltitude)); //from AP 1.4 if (lastToSendRecord.mNetworkSpeed != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "speed", String.valueOf(lastToSendRecord.mNetworkSpeed)); //from AP 1.4 if (lastToSendRecord.mNetworkBear != 0) httpPost.setHeader("geo" + Constants.separators[sepIndex] + "bearing", String.valueOf(lastToSendRecord.mNetworkBear)); //from AP 1.4 httpPost.setHeader("geo" + Constants.separators[sepIndex] + "provider", lastToSendRecord.mGpsProvider); httpPost.setHeader("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted); } //******** MAKING OF HTTP CONTENT (JSON) ************* //writing string content as an array of json object StringBuilder sb = new StringBuilder(); sb.append("["); JSONObject object = new JSONObject(); try { object.put("timestamp", lastTimestamp); JSONArray locations = new JSONArray(); //sensor box gps data if (lastToSendRecord.mBoxLat != 0) { JSONObject boxLocation = new JSONObject(); boxLocation.put("latitude", lastToSendRecord.mBoxLat); boxLocation.put("longitude", lastToSendRecord.mBoxLon); if (lastToSendRecord.mBoxAcc != 0) boxLocation.put("hdpop", lastToSendRecord.mBoxAcc); if (lastToSendRecord.mBoxAltitude != 0) boxLocation.put("altitude", lastToSendRecord.mBoxAltitude); if (lastToSendRecord.mBoxSpeed != 0) boxLocation.put("speed", lastToSendRecord.mBoxSpeed); if (lastToSendRecord.mBoxBear != 0) boxLocation.put("bearing", lastToSendRecord.mBoxBear); boxLocation.put("provider", Constants.GPS_PROVIDERS[0]); boxLocation.put("timestamp", lastToSendRecord.mBoxTimestamp); locations.put(0, boxLocation); } //phone gps data if (lastToSendRecord.mPhoneLat != 0) { JSONObject phoneLocation = new JSONObject(); phoneLocation.put("latitude", lastToSendRecord.mPhoneLat); phoneLocation.put("longitude", lastToSendRecord.mPhoneLon); if (lastToSendRecord.mPhoneAcc != 0) phoneLocation.put("accuracy", lastToSendRecord.mPhoneAcc); if (lastToSendRecord.mPhoneAltitude != 0) phoneLocation.put("altitude", lastToSendRecord.mPhoneAltitude); if (lastToSendRecord.mPhoneSpeed != 0) phoneLocation.put("speed", lastToSendRecord.mPhoneSpeed); if (lastToSendRecord.mPhoneBear != 0) phoneLocation.put("bearing", lastToSendRecord.mPhoneBear); phoneLocation.put("provider", Constants.GPS_PROVIDERS[1]); phoneLocation.put("timestamp", lastToSendRecord.mPhoneTimestamp); locations.put(1, phoneLocation); } //network gps data if (lastToSendRecord.mNetworkLat != 0) { JSONObject netLocation = new JSONObject(); netLocation.put("latitude", lastToSendRecord.mNetworkLat); netLocation.put("longitude", lastToSendRecord.mNetworkLon); if (lastToSendRecord.mNetworkAcc != 0) netLocation.put("accuracy", lastToSendRecord.mNetworkAcc); if (lastToSendRecord.mNetworkAltitude != 0) netLocation.put("altitude", lastToSendRecord.mNetworkAltitude); if (lastToSendRecord.mNetworkSpeed != 0) netLocation.put("speed", lastToSendRecord.mNetworkSpeed); if (lastToSendRecord.mNetworkBear != 0) netLocation.put("bearing", lastToSendRecord.mNetworkBear); netLocation.put("provider", Constants.GPS_PROVIDERS[2]); netLocation.put("timestamp", lastToSendRecord.mNetworkTimestamp); locations.put(2, netLocation); } object.put("locations", locations); } catch (JSONException e) { e.printStackTrace(); } String concatOfTags = ""; //put the tags of all records in concatOfTags string for (int j = 0; j < recordsWithTags.size(); j++) { if ((recordsWithTags.get(j).mUserData1 != null) && (!recordsWithTags.get(j).mUserData1.equals(""))) concatOfTags += recordsWithTags.get(j).mUserData1 + " "; } Log.d("StoreAndForwardService", "postTags()--> concat of tags: " + concatOfTags); try { String[] tags = concatOfTags.split(" "); JSONArray tagsArray = new JSONArray(); if ((tags != null) && (tags.length > 0)) { for (int k = 0; k < tags.length; k++) { if (!tags[k].equals("")) tagsArray.put(k, tags[k]); } } object.put("tags", tagsArray); //object.put("tags_cause", null); //object.put("tags_location", null); //object.put("tags_perception", null); } catch (JSONException e) { e.printStackTrace(); } sb.append(object.toString()); sb.append("]"); //Log.d("StoreAndForwardService", "]"); Log.d("StoreAndForwardService", "postTags()--> json to string: " + sb.toString()); byte[] contentGzippedBytes = zipStringToBytes(sb.toString()); ByteArrayEntity byteArrayEntity = new ByteArrayEntity(contentGzippedBytes); byteArrayEntity.setChunked(false); //IMPORTANT: must put false for smartcity.csp.it server //IMPORTANT: do not set the content-Length, because is embedded in Entity //httpPost.setHeader("Content-Length", byteArrayEntity.getContentLength()+""); httpPost.setEntity(byteArrayEntity); Log.d("StoreAndForwardService", "postTags()--> Content length: " + httpPost.getEntity().getContentLength()); Log.d("StoreAndForwardService", "postTags()--> Method: " + httpPost.getMethod()); //do http post (it performs asynchronously) HttpResponse response = httpClient.execute(httpPost); sb = null; //server response //String responseBody = EntityUtils.toString(response.getEntity()); //Log.d("StoreAndForwardService", "postTags()--> response: " +responseBody); Log.d("StoreAndForwardService", "postTags()--> status line: " + response.getStatusLine()); httpClient.getConnectionManager().shutdown(); //server response, status line StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if (statusCode == Constants.STATUS_OK) { Log.d("StoreAndForwardService", "postTags()--> STATUS OK"); mDbManager.deleteRecordsWithTagsBySessionId(sessionId); } else Log.d("StoreAndForwardService", "postTags()--> status error code: " + statusCode); } else Log.d("StoreAndForwardService", "postTags()--> no tags to send"); } } }
From source file:org.csp.everyaware.internet.StoreAndForwardService.java
public void postSecureTags() throws IllegalArgumentException, ClientProtocolException, HttpHostConnectException, IOException { Log.d("StoreAndForwardService", "postSecureTags()"); int sepIndex = 1; //default is '.' separator (see Constants.separators array) if ((Utils.report_country != null) && (Utils.report_country.equals("IT"))) sepIndex = 0; //0 is for '-' separator (for italian CSP server) List<String> sids = mDbManager.getSidsOfRecordsWithTags(); if ((sids != null) && (sids.size() > 0)) { for (int i = 0; i < sids.size(); i++) { String sessionId = (String) sids.get(i); //load records containing user tags with actual session id List<Record> recordsWithTags = mDbManager.loadRecordsWithTagBySessionId(sessionId); if ((recordsWithTags != null) && (recordsWithTags.size() > 0)) { //get size of array of records containing tags and reference to the last record int size = recordsWithTags.size(); //obtain reference to the last record of serie Record lastToSendRecord = recordsWithTags.get(size - 1); Log.d("StoreAndForwardService", "postSecureTags()--> # of records containing tags: " + size); //save timestamp of last record containing tags long lastTimestamp = 0; if (lastToSendRecord.mSysTimestamp > 0) lastTimestamp = lastToSendRecord.mSysTimestamp; else lastTimestamp = lastToSendRecord.mBoxTimestamp; String lastTsFormatted = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSSz", Locale.US) .format(new Date(lastTimestamp)); //********* MAKING OF HTTP HEADER ************** URL url = new URL(Utils.report_url); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); con.setRequestMethod("POST"); con.setUseCaches(false); con.setDoInput(true);//from w ww. j a v a2s. c o m con.setDoOutput(true); con.setRequestProperty("Content-Encoding", "gzip"); con.setRequestProperty("Content-Type", "application/json"); con.setRequestProperty("Accept", "application/json"); con.setRequestProperty("User-Agent", "AirProbe" + Utils.appVer); //******** authorization bearer header ******** if (Utils.getAccountActivationState(getApplicationContext())) con.setRequestProperty("Authorization", "Bearer " + Utils.getAccessToken(getApplicationContext())); else if (Utils.getAccountActivationStateForClient(getApplicationContext())) con.setRequestProperty("Authorization", "Bearer " + Utils.getAccessTokenForClient(getApplicationContext())); //******** meta header (for new version API V1) con.setRequestProperty("meta" + Constants.separators[sepIndex] + "timestampRecorded", lastTsFormatted); con.setRequestProperty("meta" + Constants.separators[sepIndex] + "deviceId", Utils.deviceID); con.setRequestProperty("meta" + Constants.separators[sepIndex] + "installId", Utils.installID); //******** data header (for new version API V1) //con.setRequestProperty("data"+Constants.separators[sepIndex]+"extendedPacketId", ""); //con.setRequestProperty("data"+Constants.separators[sepIndex]+"extendedPacketPointId", ""); //con.setRequestProperty("data"+Constants.separators[sepIndex]+"extendedSessionId", ""); //deprecated from AP 1.4 con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "type", "airprobe_tags"); con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "format", "json"); //con.setRequestProperty("data"+Constants.separators[sepIndex]+"contentDetails"+Constants.separators[sepIndex]+"specification", "at-3"); //update by increment this field on header changes if (size > 1) con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "list", "true"); else con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "list", "false"); con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "listSize", String.valueOf(size)); /* from AP 1.4 */ if ((lastToSendRecord.mBoxMac != null) && (!lastToSendRecord.mBoxMac.equals(""))) { Log.d("StoreAndForwardService", "postSecureData()--> box mac address: " + lastToSendRecord.mBoxMac); con.setRequestProperty("meta" + Constants.separators[sepIndex] + "sourceId", lastToSendRecord.mBoxMac); } else con.setRequestProperty("meta" + Constants.separators[sepIndex] + "sourceId", Utils.getDeviceAddress(getApplicationContext())); con.setRequestProperty("data" + Constants.separators[sepIndex] + "extendedSourceSessionId" + Constants.separators[sepIndex] + "seed", lastToSendRecord.mSourceSessionSeed); con.setRequestProperty( "data" + Constants.separators[sepIndex] + "extendedSourceSessionId" + Constants.separators[sepIndex] + "number", String.valueOf(lastToSendRecord.mSourceSessionNumber)); if ((lastToSendRecord.mSemanticSessionSeed != null) && (!lastToSendRecord.mSemanticSessionSeed.equals(""))) { con.setRequestProperty( "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId" + Constants.separators[sepIndex] + "seed", lastToSendRecord.mSemanticSessionSeed); con.setRequestProperty( "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId" + Constants.separators[sepIndex] + "number", String.valueOf(lastToSendRecord.mSemanticSessionNumber)); } con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails" + Constants.separators[sepIndex] + "typeVersion", "30"); //update by increment this field on header changes /* end of from AP 1.4 */ //******** geo header (for new version API V1) //add the right provider to header if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[0])) //sensor box { con.setRequestProperty("geo" + Constants.separators[sepIndex] + "longitude", String.valueOf(lastToSendRecord.mBoxLon)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "latitude", String.valueOf(lastToSendRecord.mBoxLat)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "provider", lastToSendRecord.mGpsProvider); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted); } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[1])) //phone { con.setRequestProperty("geo" + Constants.separators[sepIndex] + "longitude", String.valueOf(lastToSendRecord.mPhoneLon)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "latitude", String.valueOf(lastToSendRecord.mPhoneLat)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "accuracy", String.valueOf(lastToSendRecord.mPhoneAcc)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "altitude", String.valueOf(lastToSendRecord.mPhoneAltitude)); //from AP 1.4 con.setRequestProperty("geo" + Constants.separators[sepIndex] + "speed", String.valueOf(lastToSendRecord.mPhoneSpeed)); //from AP 1.4 con.setRequestProperty("geo" + Constants.separators[sepIndex] + "bearing", String.valueOf(lastToSendRecord.mPhoneBear)); //from AP 1.4 con.setRequestProperty("geo" + Constants.separators[sepIndex] + "provider", lastToSendRecord.mGpsProvider); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted); } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[2])) //network { con.setRequestProperty("geo" + Constants.separators[sepIndex] + "longitude", String.valueOf(lastToSendRecord.mNetworkLon)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "latitude", String.valueOf(lastToSendRecord.mNetworkLat)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "accuracy", String.valueOf(lastToSendRecord.mNetworkAcc)); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "altitude", String.valueOf(lastToSendRecord.mNetworkAltitude)); //from AP 1.4 con.setRequestProperty("geo" + Constants.separators[sepIndex] + "speed", String.valueOf(lastToSendRecord.mNetworkSpeed)); //from AP 1.4 con.setRequestProperty("geo" + Constants.separators[sepIndex] + "bearing", String.valueOf(lastToSendRecord.mNetworkBear)); //from AP 1.4 con.setRequestProperty("geo" + Constants.separators[sepIndex] + "provider", lastToSendRecord.mGpsProvider); con.setRequestProperty("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted); } //******** MAKING OF HTTP CONTENT (JSON) ************* //writing string content as an array of json object StringBuilder sb = new StringBuilder(); sb.append("["); JSONObject object = new JSONObject(); try { object.put("timestamp", lastTimestamp); JSONArray locations = new JSONArray(); //sensor box gps data if (lastToSendRecord.mBoxLat != 0) { JSONObject boxLocation = new JSONObject(); boxLocation.put("latitude", lastToSendRecord.mBoxLat); boxLocation.put("longitude", lastToSendRecord.mBoxLon); //boxLocation.put("accuracy", "null"); //boxLocation.put("altitude", "null"); //boxLocation.put("speed", "null"); //boxLocation.put("bearing", "null"); boxLocation.put("provider", Constants.GPS_PROVIDERS[0]); boxLocation.put("timestamp", lastToSendRecord.mBoxTimestamp); locations.put(0, boxLocation); } //phone gps data if (lastToSendRecord.mPhoneLat != 0) { JSONObject phoneLocation = new JSONObject(); phoneLocation.put("latitude", lastToSendRecord.mPhoneLat); phoneLocation.put("longitude", lastToSendRecord.mPhoneLon); phoneLocation.put("accuracy", lastToSendRecord.mAccuracy); phoneLocation.put("altitude", lastToSendRecord.mPhoneAltitude); phoneLocation.put("speed", lastToSendRecord.mPhoneSpeed); phoneLocation.put("bearing", lastToSendRecord.mPhoneBear); phoneLocation.put("provider", Constants.GPS_PROVIDERS[1]); phoneLocation.put("timestamp", lastToSendRecord.mPhoneTimestamp); locations.put(1, phoneLocation); } //network gps data if (lastToSendRecord.mNetworkLat != 0) { JSONObject netLocation = new JSONObject(); netLocation.put("latitude", lastToSendRecord.mNetworkLat); netLocation.put("longitude", lastToSendRecord.mNetworkLon); netLocation.put("accuracy", lastToSendRecord.mNetworkAcc); netLocation.put("altitude", lastToSendRecord.mNetworkAltitude); netLocation.put("speed", lastToSendRecord.mNetworkSpeed); netLocation.put("bearing", lastToSendRecord.mNetworkBear); netLocation.put("provider", Constants.GPS_PROVIDERS[2]); netLocation.put("timestamp", lastToSendRecord.mNetworkTimestamp); locations.put(2, netLocation); } object.put("locations", locations); } catch (JSONException e) { e.printStackTrace(); } String concatOfTags = ""; //put the tags of all records in concatOfTags string for (int j = 0; j < recordsWithTags.size(); j++) { if ((recordsWithTags.get(j).mUserData1 != null) && (!recordsWithTags.get(j).mUserData1.equals(""))) concatOfTags += recordsWithTags.get(j).mUserData1 + " "; } Log.d("StoreAndForwardService", "postSecureTags()--> concat of tags: " + concatOfTags); try { String[] tags = concatOfTags.split(" "); JSONArray tagsArray = new JSONArray(); if ((tags != null) && (tags.length > 0)) { for (int k = 0; k < tags.length; k++) { if (!tags[k].equals("")) tagsArray.put(k, tags[k]); } } object.put("tags", tagsArray); //object.put("tags_cause", null); //object.put("tags_location", null); //object.put("tags_perception", null); } catch (JSONException e) { e.printStackTrace(); } sb.append(object.toString()); sb.append("]"); Log.d("StoreAndForwardService", "postSecureTags()--> json to string: " + sb.toString()); //compress json content into byte array entity byte[] contentGzippedBytes = zipStringToBytes(sb.toString()); //write json compressed content into output stream OutputStream outputStream = con.getOutputStream(); outputStream.write(contentGzippedBytes); outputStream.flush(); outputStream.close(); int responseCode = con.getResponseCode(); Log.d("StoreAndForwardService", "postSecureTags()--> response code: " + responseCode); sb = null; if (responseCode == Constants.STATUS_OK) { Log.d("StoreAndForwardService", "postSecureTags()--> STATUS OK"); mDbManager.deleteRecordsWithTagsBySessionId(sessionId); } else Log.d("StoreAndForwardService", "postSecureTags()--> status error code: " + responseCode); } else Log.d("StoreAndForwardService", "postTags()--> no tags to send"); } } }
From source file:com.spoiledmilk.ibikecph.util.DB.java
private void postHistoryItemToServer(HistoryData hd, HistoryData from, Context context) { if (PreferenceManager.getDefaultSharedPreferences(context).contains("auth_token")) { String authToken = PreferenceManager.getDefaultSharedPreferences(context).getString("auth_token", ""); final JSONObject postObject = new JSONObject(); try {//from ww w . jav a2 s .c om postObject.put("auth_token", authToken); JSONObject routeObject = new JSONObject(); if (from.getName() == null || from.getName().trim().equals("")) { from.setName(IbikeApplication.getString("current_position")); } routeObject.put("from_name", from.getName()); routeObject.put("from_lattitude", from.getLatitude()); routeObject.put("from_longitude", from.getLongitude()); routeObject.put("to_name", hd.getName()); routeObject.put("to_lattitude", hd.getLatitude()); routeObject.put("to_longitude", hd.getLongitude()); routeObject.put("start_date", DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime())); postObject.put("route", routeObject); Thread thread = new Thread(new Runnable() { @Override public void run() { LOG.d("Server request: " + Config.serverUrl + "/routes"); HttpUtils.postToServer(Config.serverUrl + "/routes", postObject); } }); thread.start(); } catch (JSONException e) { LOG.e(e.getLocalizedMessage()); } } }
From source file:com.spoiledmilk.ibikecph.util.DB.java
private void postFavoriteToServer(final FavoritesData fd, Context context, boolean spawnThread) { if (IbikeApplication.isUserLogedIn()) { String authToken = IbikeApplication.getAuthToken(); final JSONObject postObject = new JSONObject(); try {// w w w. j a va 2 s .co m JSONObject favouriteObject = new JSONObject(); favouriteObject.put("name", fd.getName()); favouriteObject.put("address", fd.getAdress()); favouriteObject.put("lattitude", fd.getLatitude()); favouriteObject.put("longitude", fd.getLongitude()); favouriteObject.put("source", fd.getSource()); favouriteObject.put("sub_source", fd.getSubSource()); postObject.put("favourite", favouriteObject); postObject.put("auth_token", authToken); if (spawnThread) { Thread thread = new Thread(new Runnable() { @Override public void run() { LOG.d("Server request: " + Config.serverUrl + "/favourites"); JsonNode responseNode = HttpUtils.postToServer(Config.serverUrl + "/favourites", postObject); if (responseNode != null && responseNode.has("data") && responseNode.get("data").has("id")) { int id = responseNode.get("data").get("id").asInt(); SQLiteDatabase db = getWritableDatabase(); if (db == null) return; String strFilter = "_id=" + fd.getId(); ContentValues args = new ContentValues(); args.put(KEY_API_ID, id); db.update(TABLE_FAVORITES, args, strFilter, null); db.close(); } } }); thread.start(); } else { LOG.d("Server request: " + Config.serverUrl + "/favourites"); JsonNode responseNode = HttpUtils.postToServer(Config.serverUrl + "/favourites", postObject); if (responseNode != null && responseNode.has("data") && responseNode.get("data").has("id")) { int id = responseNode.get("data").get("id").asInt(); SQLiteDatabase db = getWritableDatabase(); if (db == null) return; String strFilter = "_id=" + fd.getId(); ContentValues args = new ContentValues(); args.put(KEY_API_ID, id); db.update(TABLE_FAVORITES, args, strFilter, null); db.close(); } } } catch (Exception e) { LOG.e(e.getLocalizedMessage()); } } }
From source file:com.spoiledmilk.ibikecph.util.DB.java
private void updateFavoriteToServer(final FavoritesData fd, Context context, final APIListener listener) { if (IbikeApplication.isUserLogedIn()) { String authToken = IbikeApplication.getAuthToken(); final JSONObject postObject = new JSONObject(); try {/*from ww w . ja v a 2 s. co m*/ JSONObject favouriteObject = new JSONObject(); favouriteObject.put("name", fd.getName()); favouriteObject.put("address", fd.getAdress()); favouriteObject.put("lattitude", fd.getLatitude()); favouriteObject.put("longitude", fd.getLongitude()); favouriteObject.put("source", fd.getSource()); favouriteObject.put("sub_source", fd.getSubSource()); postObject.put("favourite", favouriteObject); postObject.put("auth_token", authToken); Thread thread = new Thread(new Runnable() { @Override public void run() { JsonNode node = HttpUtils.putToServer(Config.serverUrl + "/favourites/" + fd.getApiId(), postObject); if (listener != null) { boolean success = false; if (node != null && node.has("success") && node.get("success").asBoolean()) { success = true; } listener.onRequestCompleted(success); } } }); thread.start(); } catch (JSONException e) { LOG.e(e.getLocalizedMessage()); } } }
From source file:com.spoiledmilk.ibikecph.util.DB.java
public void deleteFavoriteFromServer(final FavoritesData fd, Context context) { if (IbikeApplication.isUserLogedIn()) { String authToken = IbikeApplication.getAuthToken(); final JSONObject postObject = new JSONObject(); try {//from w w w. j av a 2 s . c om postObject.put("auth_token", authToken); Thread thread = new Thread(new Runnable() { @Override public void run() { HttpUtils.deleteFromServer(Config.serverUrl + "/favourites/" + fd.getApiId(), postObject); } }); thread.start(); } catch (JSONException e) { LOG.e(e.getLocalizedMessage()); } } }
From source file:com.spoiledmilk.ibikecph.util.DB.java
public void saveFinishedRoute(Location startLocation, Location endLocation, String startName, String endName, String startDate, String endDate, String visitedLocations) { if (IbikeApplication.isUserLogedIn()) { String authToken = IbikeApplication.getAuthToken(); final JSONObject postObject = new JSONObject(); try {/*from ww w . java2s . co m*/ postObject.put("auth_token", authToken); JSONObject routeObject = new JSONObject(); routeObject.put("from_name", startName); routeObject.put("from_lattitude", startLocation.getLatitude()); routeObject.put("from_longitude", startLocation.getLongitude()); routeObject.put("to_name", endName); routeObject.put("to_lattitude", endLocation.getLatitude()); routeObject.put("to_longitude", endLocation.getLongitude()); routeObject.put("start_date", startDate); routeObject.put("end_date", endDate); routeObject.put("route_visited_locations", visitedLocations); routeObject.put("is_finished", true); postObject.put("route", routeObject); new Thread(new Runnable() { @Override public void run() { HttpUtils.postToServer(Config.serverUrl + "/routes", postObject); } }).start(); } catch (JSONException e) { LOG.e(e.getLocalizedMessage()); } } }