Android Open Source - retrowatch Http Requester






From Project

Back to project page retrowatch.

License

The source code is released under:

Apache License

If you think the Android project retrowatch listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.hardcopy.retrowatch.connectivity;
//from  w  w w. j  a va  2  s. com
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import android.util.Log;

/*
  ????? : ??? (???)
  ?? ?? : 2011.02.26
  ????? : ???? 7 64bit, ????????, ??????? SDK(2.1 ver7)
*/


/// HTTP????? ???????? ?? ???? ???? ?????
/// GET? POST??? ???? ? ?? ????.

/// ????? ???? ????? ?????? ???? ????
/// request ( URL??, ???(GET or POST), ???+??? ) ;  ???  ??? ???? ? ??.

public class HttpRequester 
{
  public String m_request ;            /// ???? ????? ??? ??? ????
  private HttpURLConnection m_con ;    /// http????? ????? ??? ???
  String m_cookies = "" ;              /// ?? ???? ??? ??
  boolean m_session = false ;          /// ????? ?? ?? ??? ??? ??
  long m_sessionLimitTime = 600000 ;     /// ?? ???? (?????)
  long m_sessionTime = 0 ;            /// ????? ???? ??
  
  private static final String ENCODING_TYPE_UTF_8 = "UTF-8";
  private static final String ENCODING_TYPE_EUC_KR = "EUC-KR";
  private static int TIMEOUT_VALUE = 5000;

  HttpRequester( )        /// ?????
  {}
  
  
  /// 1. ????? ????????? ????
  /// 2. ????? ?????? ?? ???? false~
  public boolean checkSession( ) 
  {
    if( !m_session ) {
      return false ;
    }
    
    if( System.currentTimeMillis( ) < m_sessionTime + m_sessionLimitTime ) {
      m_sessionTime = System.currentTimeMillis( ) ;    /// ???? ??? ?????? ?? ?? ????
      return true ;  
    } else {
      m_session = false ;      /// ??????? ????? ????? ???
      return false ;  
    }
  }
  
  /// Request? ???? ?? ??? ?? ??? ????.
  public String requestAndSetSession( String uri, Map<String, Object> params ) throws MalformedURLException, IOException   {
    
    String rec = request( new URL(uri), null, "POST", params ) ;        /// ???? ???? ???????? ???

      Map<String, List<String>> imap = m_con.getHeaderFields( ) ;  /// ???? Http????? ???
      if( imap.containsKey( "Set-Cookie" ) )                  /// ??? ?? ??? ??? ???
      {
      List<String> lString = imap.get( "Set-Cookie" ) ;        /// ??? ?????? ? ???
      for( int i = 0 ; i < lString.size() ; i++ ) {
        m_cookies += lString.get( i ) ;
      }
          m_session = true ;        /// ????? ?????
          
      } else {
        m_session = false ;
      }
      /// ?????? ???? ????? ???????  m_session???? ?????
      /// checkSession( ) ??? ???? ??? ?????? ???? ???? ???
    return rec ;
  }
  
  
  /// ???? ???? ??
  /// ( URL??, ???(GET or POST), ???+??? ) ;
  protected String request( URL url, String encType, String method, Map<String, Object> params) throws IOException 
  {
    if(url == null) return "";
    
    InputStream in = null ;      /// ??? ???????
    OutputStream out = null ;    /// POST?????? ?? ???????? ??? ??? ???
  
    /// ???? ??? ???
    m_con = (HttpURLConnection) url.openConnection( ) ;
    ///String wwwstring = URLEncoder.encode( url.toString() ) ;
    m_con.setRequestMethod(method);
    m_con.setConnectTimeout(TIMEOUT_VALUE);
    m_con.setReadTimeout(TIMEOUT_VALUE);
  
    /// ????? ???? HTTP????? ????? urlencoded????? ??????? ??????.
    m_con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    
    /// ??????? ?????? ??
    m_con.setDoInput(true);
    
    if( m_session ) {
      m_con.setRequestProperty( "cookie", m_cookies ) ;
    }
    
    /// ??????????? ?? ??? outputStream????? ??? ??
    if (method.equals("POST")) 
    {
      /// ???????? ??? ??? ????.
      m_con.setDoOutput(true);              /// ??? ??? ????? ?????? true? ?
      
      String paramstr = buildParameters( params ) ;  /// ??????? ????? ??
      
      out = m_con.getOutputStream( ) ;        /// ??? ??? ???
      out.write( paramstr.getBytes( "UTF-8" ) ) ;    /// UTF-8?????? ???? ??? ??.
      out.flush( ) ;                  /// ???~
      out.close( ) ;                  /// ??? ??
      // Log.d( "jsonPrint", "post succes" ) ;      /// ????
    }
    
    // SuhYB. Find encoding type to prevent broken 2-byte character
    String encodingType = ENCODING_TYPE_EUC_KR;
    try {
      String headerType = m_con.getContentType();
      if(encType!=null && encType.length()>0)
        encodingType = encType;
      if(headerType !=null && headerType.toUpperCase().indexOf(ENCODING_TYPE_UTF_8) != -1) {
        encodingType = ENCODING_TYPE_UTF_8;
      }
    } catch(Exception e) {
      e.printStackTrace();
      encodingType = ENCODING_TYPE_UTF_8;
    }
  
    /// ??? ???????? ???? ???
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    
    /// ???? ???????? ??? ????
    byte[] buf = new byte[131072];
    try 
    {
      in = m_con.getInputStream();            /// ??????? ???
      //Log.d( "---recTime---", "" + (System.currentTimeMillis( ) - ti) ) ; /// == ?? ????? == inputstream?? ??? ?? 10?????? ???? ???????
                                        /// ??? S??? ?????? WebView??????? Http????? 15????? ???? ?? ?????
                                        /// ???????? ? ? ?? ????? ????? ???? ? ???????? ??? ??? S?!!! ????? ?? ???

      /// ??? ????? ????? ????????? ????.
      while (true) 
      {
        int readlen = in.read(buf);
        if (readlen < 1)
          break;
        bos.write(buf, 0, readlen);
      }
      
      m_request = new String( bos.toByteArray( ), encodingType ) ;        // SuhYB. ?? ????????? ??? ??? ??? ?? ??? ????? ???? ??
      /////// ???? ???? ????? UTF-8? ???? ????? ?? /////////////////
      /*
      File fl = new File( "/sdcard/rec.txt" ) ;
      FileOutputStream fos = new FileOutputStream( fl ) ;
      fos.write( bos.toByteArray( ) ) ;
      /**/
      
      return m_request ;
    } 
    catch (IOException e) 
    {
      /// ???? ??? ???? ?? ?????? ???? ???? ?????.
      if(m_con != null && m_con.getResponseCode() == 500) 
      {
        /// ???? ???? ???? ???? ??????? ????? ????? ??
        bos.reset();
        InputStream err = m_con.getErrorStream();
        while (true) 
        {
          int readlen = err.read( buf ) ;
          if ( readlen < 1 )
            break ;
          bos.write( buf, 0, readlen ) ;
        }
        
        /// ??????? ????? ??
        String output = new String(bos.toByteArray(), "UTF-8");
        
        /// ?????? ??????? ????.
        System.err.println(output);
      }
      throw e;
    } 
    finally /// 500?????? ??? ?? ??? ??????.... -_- ???????? ????
    {
      if ( in != null )
        in.close( ) ;
      if ( m_con != null )
        m_con.disconnect( ) ;
    }
  }
  
  /// ?????? ???? ????  "???=???&" ?????? ????? ????? ??
  protected String buildParameters(Map<String, Object> params) throws IOException 
  {
    if( params == null )
      return "" ;
    
    StringBuilder sb = new StringBuilder( ) ;
    
    /// ? ????? arg1=???&arg2=?????????&arg3=???  ???????? ???? ???.
    for( Iterator<String> i = params.keySet( ).iterator( )  ; i.hasNext( )  ;  ) 
    {
      String key = (String) i.next();
      sb.append(key);
      sb.append("=");
      sb.append(URLEncoder.encode(String.valueOf(params.get(key)), "UTF-8"));
      if (i.hasNext())
        sb.append("&");
    }
    return sb.toString();
  }
  
}




Java Source Code List

com.hardcopy.retrowatch.DeviceListActivity.java
com.hardcopy.retrowatch.FiltersAdapter.java
com.hardcopy.retrowatch.FiltersFragment.java
com.hardcopy.retrowatch.IAdapterListener.java
com.hardcopy.retrowatch.IDialogListener.java
com.hardcopy.retrowatch.IFragmentListener.java
com.hardcopy.retrowatch.IWebViewListener.java
com.hardcopy.retrowatch.MessageListAdapter.java
com.hardcopy.retrowatch.MessageListDialog.java
com.hardcopy.retrowatch.MessageListFragment.java
com.hardcopy.retrowatch.RetroWatchActivity.java
com.hardcopy.retrowatch.RetroWatchFragmentAdapter.java
com.hardcopy.retrowatch.RetroWebViewActivity.java
com.hardcopy.retrowatch.RetroWebView.java
com.hardcopy.retrowatch.RssAdapter.java
com.hardcopy.retrowatch.RssFragment.java
com.hardcopy.retrowatch.WatchControlFragment.java
com.hardcopy.retrowatch.connectivity.BluetoothManager.java
com.hardcopy.retrowatch.connectivity.ConnectionInfo.java
com.hardcopy.retrowatch.connectivity.HttpAsyncTask.java
com.hardcopy.retrowatch.connectivity.HttpFileAsyncTask.java
com.hardcopy.retrowatch.connectivity.HttpInterface.java
com.hardcopy.retrowatch.connectivity.HttpListener.java
com.hardcopy.retrowatch.connectivity.HttpRequester.java
com.hardcopy.retrowatch.connectivity.TransactionBuilder.java
com.hardcopy.retrowatch.connectivity.TransactionReceiver.java
com.hardcopy.retrowatch.contents.ContentManager.java
com.hardcopy.retrowatch.contents.FeedManager.java
com.hardcopy.retrowatch.contents.FeedParser.java
com.hardcopy.retrowatch.contents.GmailContract.java
com.hardcopy.retrowatch.contents.IContentManagerListener.java
com.hardcopy.retrowatch.contents.IFeedListener.java
com.hardcopy.retrowatch.contents.objects.CPObject.java
com.hardcopy.retrowatch.contents.objects.ContentObject.java
com.hardcopy.retrowatch.contents.objects.EmergencyObject.java
com.hardcopy.retrowatch.contents.objects.FeedObject.java
com.hardcopy.retrowatch.contents.objects.FilterObject.java
com.hardcopy.retrowatch.contents.objects.MessagingObject.java
com.hardcopy.retrowatch.contents.objects.NotificationObject.java
com.hardcopy.retrowatch.database.DBHelper.java
com.hardcopy.retrowatch.service.NotificationReceiverService.java
com.hardcopy.retrowatch.service.RetroWatchService.java
com.hardcopy.retrowatch.service.ServiceMonitoring.java
com.hardcopy.retrowatch.utils.Constants.java
com.hardcopy.retrowatch.utils.Logs.java
com.hardcopy.retrowatch.utils.RecycleUtils.java
com.hardcopy.retrowatch.utils.Settings.java
com.hardcopy.retrowatch.utils.Utils.java
com.hardcopy.retrowatchle.DeviceListActivity.java
com.hardcopy.retrowatchle.FiltersAdapter.java
com.hardcopy.retrowatchle.FiltersFragment.java
com.hardcopy.retrowatchle.IAdapterListener.java
com.hardcopy.retrowatchle.IDialogListener.java
com.hardcopy.retrowatchle.IFragmentListener.java
com.hardcopy.retrowatchle.IWebViewListener.java
com.hardcopy.retrowatchle.MessageListAdapter.java
com.hardcopy.retrowatchle.MessageListDialog.java
com.hardcopy.retrowatchle.MessageListFragment.java
com.hardcopy.retrowatchle.RetroWatchActivity.java
com.hardcopy.retrowatchle.RetroWatchFragmentAdapter.java
com.hardcopy.retrowatchle.RetroWebViewActivity.java
com.hardcopy.retrowatchle.RetroWebView.java
com.hardcopy.retrowatchle.RssAdapter.java
com.hardcopy.retrowatchle.RssFragment.java
com.hardcopy.retrowatchle.WatchControlFragment.java
com.hardcopy.retrowatchle.connectivity.BluetoothManager.java
com.hardcopy.retrowatchle.connectivity.ConnectionInfo.java
com.hardcopy.retrowatchle.connectivity.HttpAsyncTask.java
com.hardcopy.retrowatchle.connectivity.HttpFileAsyncTask.java
com.hardcopy.retrowatchle.connectivity.HttpInterface.java
com.hardcopy.retrowatchle.connectivity.HttpListener.java
com.hardcopy.retrowatchle.connectivity.HttpRequester.java
com.hardcopy.retrowatchle.connectivity.TransactionBuilder.java
com.hardcopy.retrowatchle.connectivity.TransactionReceiver.java
com.hardcopy.retrowatchle.contents.ContentManager.java
com.hardcopy.retrowatchle.contents.FeedManager.java
com.hardcopy.retrowatchle.contents.FeedParser.java
com.hardcopy.retrowatchle.contents.GmailContract.java
com.hardcopy.retrowatchle.contents.IContentManagerListener.java
com.hardcopy.retrowatchle.contents.IFeedListener.java
com.hardcopy.retrowatchle.contents.objects.CPObject.java
com.hardcopy.retrowatchle.contents.objects.ContentObject.java
com.hardcopy.retrowatchle.contents.objects.EmergencyObject.java
com.hardcopy.retrowatchle.contents.objects.FeedObject.java
com.hardcopy.retrowatchle.contents.objects.FilterObject.java
com.hardcopy.retrowatchle.contents.objects.MessagingObject.java
com.hardcopy.retrowatchle.contents.objects.NotificationObject.java
com.hardcopy.retrowatchle.database.DBHelper.java
com.hardcopy.retrowatchle.service.RetroWatchService.java
com.hardcopy.retrowatchle.service.ServiceMonitoring.java
com.hardcopy.retrowatchle.utils.Constants.java
com.hardcopy.retrowatchle.utils.Logs.java
com.hardcopy.retrowatchle.utils.RecycleUtils.java
com.hardcopy.retrowatchle.utils.Settings.java
com.hardcopy.retrowatchle.utils.Utils.java