@Override protected String doInBackground(LocalIndexInfo... params) { int count = 0; int total = 0; for (LocalIndexInfo info : params) { if (!isCancelled()) { String warning = null; try { File file = new File(info.getPathToData()); String userName = settings.USER_NAME.get(); String pwd = settings.USER_PASSWORD.get(); String url = URL_TO_UPLOAD_GPX + "?author=" + URLEncoder.encode(userName, "UTF-8") + "&wd=" + URLEncoder.encode(pwd, "UTF-8") + "&file=" + URLEncoder.encode(file.getName(), "UTF-8"); warning = Algoritms.uploadFile(url, file, "filename", true); } catch (UnsupportedEncodingException e) { warning = e.getMessage(); } total++; if (warning == null) { count++; } else { publishProgress(warning); } } } return getString(R.string.local_index_items_uploaded, count, total); }
public String uploadGPXFile(String tagstring, String description, String visibility, File f) { String url = URL_TO_UPLOAD_GPX; Map<String, String> additionalData = new LinkedHashMap<String, String>(); additionalData.put("description", description); additionalData.put("tags", tagstring); additionalData.put("visibility", visibility); return NetworkUtils.uploadFile( url, f, settings.USER_NAME.get() + ":" + settings.USER_PASSWORD.get(), "file", true, additionalData); }
private String sendRequest( String url, String requestMethod, String requestBody, String userOperation, boolean doAuthenticate) { log.info("Sending request " + url); // $NON-NLS-1$ // if(true){ // return sendRequsetThroughHttpClient(url, requestMethod, requestBody, userOperation, // doAuthenticate); // } try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setConnectTimeout(15000); connection.setRequestMethod(requestMethod); StringBuilder responseBody = new StringBuilder(); if (doAuthenticate) { String token = settings.USER_NAME.get() + ":" + settings.USER_PASSWORD.get(); // $NON-NLS-1$ connection.addRequestProperty( "Authorization", "Basic " + Base64.encode( token.getBytes("UTF-8"))); // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } connection.setDoInput(true); if (requestMethod.equals("PUT") || requestMethod.equals("POST") || requestMethod.equals("DELETE")) { // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ connection.setDoOutput(true); connection.setRequestProperty("Content-type", "text/xml"); // $NON-NLS-1$ //$NON-NLS-2$ OutputStream out = connection.getOutputStream(); if (requestBody != null) { BufferedWriter bwr = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"), 1024); // $NON-NLS-1$ bwr.write(requestBody); bwr.flush(); } out.close(); } connection.connect(); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { String msg = userOperation + " " + ctx.getString(R.string.failed_op) + " : " + connection.getResponseMessage(); // $NON-NLS-1$//$NON-NLS-2$ log.error(msg); showWarning(msg); } else { log.info("Response : " + connection.getResponseMessage()); // $NON-NLS-1$ // populate return fields. responseBody.setLength(0); InputStream i = connection.getInputStream(); if (i != null) { BufferedReader in = new BufferedReader(new InputStreamReader(i, "UTF-8"), 256); // $NON-NLS-1$ String s; boolean f = true; while ((s = in.readLine()) != null) { if (!f) { responseBody.append("\n"); // $NON-NLS-1$ } else { f = false; } responseBody.append(s); } } return responseBody.toString(); } } catch (NullPointerException e) { // that's tricky case why NPE is thrown to fix that problem httpClient could be used String msg = ctx.getString(R.string.auth_failed); log.error(msg, e); showWarning(msg); } catch (MalformedURLException e) { log.error(userOperation + " " + ctx.getString(R.string.failed_op), e); // $NON-NLS-1$ showWarning( MessageFormat.format( ctx.getResources().getString(R.string.poi_error_unexpected_template), userOperation)); } catch (IOException e) { log.error(userOperation + " " + ctx.getString(R.string.failed_op), e); // $NON-NLS-1$ showWarning( MessageFormat.format( ctx.getResources().getString(R.string.poi_error_io_error_template), userOperation)); } return null; }
protected String sendRequsetThroughHttpClient( String url, String requestMethod, String requestBody, String userOperation, boolean doAuthenticate) { StringBuilder responseBody = new StringBuilder(); try { HttpParams params = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(params, 15000); DefaultHttpClient httpclient = new DefaultHttpClient(params); if (doAuthenticate) { UsernamePasswordCredentials credentials = new UsernamePasswordCredentials( settings.USER_NAME.get() + ":" //$NON-NLS-1$ + settings.USER_PASSWORD.get()); httpclient .getCredentialsProvider() .setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), credentials); } HttpRequestBase method = null; if (requestMethod.equals("GET")) { // $NON-NLS-1$ method = new HttpGet(url); } else if (requestMethod.equals("POST")) { // $NON-NLS-1$ method = new HttpPost(url); } else if (requestMethod.equals("PUT")) { // $NON-NLS-1$ method = new HttpPut(url); } else if (requestMethod.equals("DELETE")) { // $NON-NLS-1$ method = new HttpDelete(url); } else { throw new IllegalArgumentException(requestMethod + " is invalid method"); // $NON-NLS-1$ } if (requestMethod.equals("PUT") || requestMethod.equals("POST") || requestMethod.equals("DELETE")) { // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // TODO add when needed // connection.setDoOutput(true); // connection.setRequestProperty("Content-type", "text/xml"); // OutputStream out = connection.getOutputStream(); // if (requestBody != null) { // BufferedWriter bwr = new BufferedWriter(new OutputStreamWriter(out, "UTF-8")); // bwr.write(requestBody); // bwr.flush(); // } // out.close(); } HttpResponse response = httpclient.execute(method); if (response.getStatusLine() == null || response.getStatusLine().getStatusCode() != 200) { String msg; if (response.getStatusLine() != null) { msg = userOperation + " " + ctx.getString(R.string.failed_op); // $NON-NLS-1$ } else { msg = userOperation + " " + ctx.getString(R.string.failed_op) + response.getStatusLine().getStatusCode() + " : " + //$NON-NLS-1$//$NON-NLS-2$ response.getStatusLine().getReasonPhrase(); } log.error(msg); showWarning(msg); } else { InputStream is = response.getEntity().getContent(); if (is != null) { BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); // $NON-NLS-1$ String s; while ((s = in.readLine()) != null) { responseBody.append(s); responseBody.append("\n"); // $NON-NLS-1$ } is.close(); } httpclient.getConnectionManager().shutdown(); return responseBody.toString(); } } catch (MalformedURLException e) { log.error(userOperation + " failed", e); // $NON-NLS-1$ showWarning( MessageFormat.format( ctx.getResources().getString(R.string.poi_error_unexpected_template), userOperation)); } catch (IOException e) { log.error(userOperation + " failed", e); // $NON-NLS-1$ showWarning( MessageFormat.format( ctx.getResources().getString(R.string.poi_error_unexpected_template), userOperation)); } return null; }