Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***
- Copyright (c) 2009
- Author: Stefan Klumpp <[email protected]>
- Web: http://stefanklumpp.com
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package com.devstream.http;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import java.util.zip.GZIPInputStream;
- import org.apache.http.Header;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.entity.StringEntity;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicHeader;
- import org.apache.http.protocol.HTTP;
- import org.json.JSONObject;
- import android.util.Log;
- public class HttpClient {
- private static final String TAG = "HttpClient";
- public static JSONObject SendHttpPost(String URL, JSONObject jsonObjSend) {
- try {
- DefaultHttpClient httpclient = new DefaultHttpClient();
- HttpPost httpPostRequest = new HttpPost(URL);
- StringEntity se;
- se = new StringEntity(jsonObjSend.toString());
- // Set HTTP parameters
- httpPostRequest.setEntity(se);
- httpPostRequest.setHeader("Accept", "application/json");
- se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
- httpPostRequest.setHeader("Content-type", "application/json");
- httpPostRequest.setHeader("Accept-Encoding", "gzip"); // only set this parameter if you would like to use gzip compression
- long t = System.currentTimeMillis();
- HttpResponse response = (HttpResponse) httpclient.execute(httpPostRequest);
- Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]");
- // Get hold of the response entity (-> the data):
- HttpEntity entity = response.getEntity();
- if (entity != null) {
- // Read the content stream
- InputStream instream = entity.getContent();
- Header contentEncoding = response.getFirstHeader("Content-Encoding");
- if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
- instream = new GZIPInputStream(instream);
- }
- // convert content stream to a String
- String resultString= convertStreamToString(instream);
- instream.close();
- resultString = resultString.substring(1,resultString.length()-1); // remove wrapping "[" and "]"
- // Transform the String into a JSONObject
- JSONObject jsonObjRecv = new JSONObject(resultString);
- // Raw DEBUG output of our received JSON object:
- Log.i(TAG,"<JSONObject>\n"+jsonObjRecv.toString()+"\n</JSONObject>");
- return jsonObjRecv;
- }
- }
- catch (Exception e)
- {
- // More about HTTP exception handling in another tutorial.
- // For now we just print the stack trace.
- e.printStackTrace();
- }
- return null;
- }
- private static String convertStreamToString(InputStream is) {
- /*
- * 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.
- *
- * (c) public domain: http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-restful-client-at-android/
- */
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new InputStreamReader(is,"utf-8"), 8);
- } catch (UnsupportedEncodingException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- StringBuilder sb = new StringBuilder();
- String line = null;
- try {
- while ((line = reader.readLine()) != null) {
- sb.append(line + "\n");
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement