title: android http get request in broadcast receiver
body: <p>I'm new to android and need help, as the question states i want to have a background service that listens to incoming smses(using broadcast receiver?) and then makes a http get request with sms body and phone number for each sms as soon as it arrives(to upload to a web server), trying to do this from scratch, ideas and code examples anyone ? :)</p>
  
  <pre><code>public class ReceiverContainer extends Service{
  
  public SMSreceiver mSMSreceiver;
  public IntentFilter mIntentFilter;
  
  @Override
  public void onCreate()
  {
  super.onCreate();
  
  //SMS event receiver
  mSMSreceiver = new SMSreceiver();
  mIntentFilter = new IntentFilter();
  mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
  registerReceiver(mSMSreceiver, mIntentFilter);
  }
  
  @Override
  public void onDestroy()
  {
  super.onDestroy();
  
  // Unregister the SMS receiver
  unregisterReceiver(mSMSreceiver);
  mSMSreceiver = null;
  }
  
  @Override
  public IBinder onBind(Intent intent) {
  // TODO Auto-generated method stub
  return null;
  }
  
  public class SMSreceiver extends BroadcastReceiver
  {
   public void Action(Context context,Intent intent) throws ClientProtocolException, URISyntaxException, IOException
      {
       Bundle myBundle = intent.getExtras();
       SmsMessage [] messages = null;
       String strMessage = "";
       String msgFrom = "";
       String msgText = "";
  
       if (myBundle != null)
       {
           Object [] pdus = (Object[]) myBundle.get("pdus");
           messages = new SmsMessage[pdus.length];
  
           for (int i = 0; i &lt; messages.length; i++)
           {
               messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
               strMessage += "SMS From: " + messages[i].getOriginatingAddress();
               msgFrom += messages[i].getOriginatingAddress();
               strMessage += " : ";
               strMessage += messages[i].getMessageBody();
               msgText += messages[i].getMessageBody();
               strMessage += "\n";
           }
  
           Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
  
           uploadMessage(context,msgFrom,msgText);
  
       }
      }
  
  @Override
  public void onReceive(Context context, Intent intent)
  {
          try {
              Action(context,intent);
          } catch (ClientProtocolException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (URISyntaxException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          }
  }
  
  }
  
  public void uploadMessage(Context context,String number,String msg) throws URISyntaxException,   ClientProtocolException, IOException
  {
  
  HttpResponse response = null;
  HttpClient client = new DefaultHttpClient();
  
  
  Uri.Builder path = new Uri.Builder();
  path.scheme("http");
  path.authority("technonectar11.com");
  path.path("sms");
  path.appendQueryParameter("fromno" , number);
  path.appendQueryParameter("text" , msg);
  path.appendQueryParameter("uname" , "vijay");
  
  HttpGet request = new HttpGet(path.build().toString());     
  //request.setURI(new URI("http://www.technonectar11.com/sms/insertsms?fromno="+number+"&amp;text="+msg+"&amp;uname=vijay"));
  response = client.execute(request);
  
  String result = convertStreamToString(response.getEntity().getContent());
  
  Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
  
  }
  
  public static String convertStreamToString(InputStream inputStream) throws IOException
  {
  if (inputStream != null)
  {
      Writer writer = new StringWriter();
  
      char[] buffer = new char[1024];
      try
      {
          Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"),1024);
          int n;
          while ((n = reader.read(buffer)) != -1)
          {
              writer.write(buffer, 0, n);
          }
      }
      finally
      {
          inputStream.close();
      }
      return writer.toString();
  }
  else
  {
      return "";
  }
  </code></pre>
  
  <p>}
  }</p>
  
  <p>this is my code in its entirety, but the upload message function does not work</p>