Java tutorial
/* ApicAday - Everyday.. is different, your mood, your life. Copyright (c) 2010 Oliver Selinger <oliver.selinger@autburst.com>, Michael Greifeneder <michael.greifeneder@autburst.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autburst.picture.server; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.StringWriter; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.StatusLine; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.FileEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import android.util.Log; public class HttpRequest { private static final String TAG = HttpRequest.class.getSimpleName(); public void delete(String sUrl) throws Exception { HttpClient httpclient = new DefaultHttpClient(); try { // Prepare a request object HttpDelete httpdelete = new HttpDelete(sUrl); // Execute the request HttpResponse response; response = httpclient.execute(httpdelete); // Examine the response status StatusLine statusLine = response.getStatusLine(); Log.i(TAG, statusLine.toString()); int statusCode = statusLine.getStatusCode(); if (statusCode != HttpStatus.SC_OK && statusCode != HttpStatus.SC_NO_CONTENT) throw new Exception("could not perform delete request: " + statusLine.getStatusCode()); } catch (Exception ex) { Log.e(TAG, "---------Error-----" + ex.getMessage()); throw new Exception(ex); } finally { httpclient.getConnectionManager().shutdown(); } } /** * HttpGet request * * @param sUrl * @return */ public String get(String sUrl) throws Exception { HttpParams my_httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(my_httpParams, 15000); HttpClient httpclient = new DefaultHttpClient(my_httpParams); try { // Prepare a request object HttpGet httpget = new HttpGet(sUrl); // Execute the request HttpResponse response; response = httpclient.execute(httpget); // Examine the response status StatusLine statusLine = response.getStatusLine(); Log.i(TAG, statusLine.toString()); if (statusLine.getStatusCode() != HttpStatus.SC_OK) throw new Exception("could not perform get request: " + statusLine.getStatusCode()); // Get hold of the response entity HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need // to worry about connection release if (entity != null) { InputStream instream = entity.getContent(); String result = convertStreamToString(instream); Log.i(TAG, result); // Closing the input stream will trigger connection release instream.close(); return result; } throw new Exception("Http get request did not deliver any payload!"); } catch (Exception ex) { Log.e(TAG, "---------Error-----" + ex.getMessage()); throw new Exception(ex); } finally { httpclient.getConnectionManager().shutdown(); } } private String convertStreamToString(InputStream is) throws IOException { /* * To convert the InputStream to String we use the * BufferedReader.readLine() method. We iterate until the BufferedReader * return null which means there's no more data to read. Each line will * appended to a StringBuilder and returned as String. */ // BufferedReader reader = new BufferedReader(new // InputStreamReader(is)); // StringBuilder sb = new StringBuilder(); // // String line = null; // try { // while ((line = reader.readLine()) != null) { // sb.append(line); // } // } catch (IOException e) { // e.printStackTrace(); // } finally { // try { // is.close(); // } catch (IOException e) { // e.printStackTrace(); // } // } // return sb.toString(); try { InputStreamReader in = new InputStreamReader(is); StringWriter sw = new StringWriter(); char[] buffer = new char[1024]; for (int n; (n = in.read(buffer)) != -1;) sw.write(buffer, 0, n); return sw.toString(); } catch (IOException e) { throw new IOException(e.getMessage()); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } public void post(String url, File file) throws Exception { HttpClient httpClient = new DefaultHttpClient(); try { httpClient.getParams().setParameter("http.socket.timeout", new Integer(90000)); // 90 sec. HttpPost post = new HttpPost(url); // Multi mpEntity = new MultipartEntity(); // ContentBody cbFile = new FileBody(file, "image/jpeg"); // mpEntity.addPart("userfile", cbFile); FileEntity entity; // entity = new FileEntity(file, "binary/octet-stream"); entity = new FileEntity(file, "image/jpeg"); //entity.setChunked(true); post.setEntity(entity); //post.setHeader("Content-type", "image/jpeg"); // Send any XML file as the body of the POST request // File f = new File("students.xml"); // System.out.println("File Length = " + f.length()); // post.setBody(new FileInputStream(file)); //// c //// "image/jpeg; charset=ISO-8859-1"); // post.setHeader("Content-type", "image/jpeg"); post.addHeader("filename", file.getName()); HttpResponse response = httpClient.execute(post); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK && statusCode != HttpStatus.SC_NO_CONTENT) { Log.e(TAG, "--------Error--------Response Status linecode:" + response.getStatusLine()); throw new Exception("--------Error--------Response Status linecode:" + response.getStatusLine()); } // else { // // Here every thing is fine. // } // HttpEntity resEntity = response.getEntity(); // if (resEntity == null) { // Log.e(TAG, "---------Error No Response !!!-----"); // } } catch (Exception ex) { Log.e(TAG, "---------Error-----" + ex.getMessage()); throw new Exception(ex); } finally { httpClient.getConnectionManager().shutdown(); } } }