zoukankan      html  css  js  c++  java
  • android 网络之 httppost

    android中使用http协议进行通信

    以下的一个例子,是我G06的android测试代码

    public class MainActivity extends Activity {
        /** Called when the activity is first created. */
     
     private static final int STATE_21 = 0x21;
     private static final int STATE_22 = 0x22;
     private static final int STATE_01 = 0x01;
     private static final int STATE_02 = 0x02;
     private static final int STATE_31 = 0x31;
     
     private static int iCurrentState = STATE_21;
     
     private static final String strUrl = "http://XXX.XXX.XXX.XXX:8080/terminal/gprs";//00 11s
     private static final String strUserAgent = "13800138000";
     private Button btn;
     private Button btn2;
     private TextView textView;
     private EditText editText;
     private String strData;
     
     private Handler handler = new Handler()
     {
      @Override
      public void handleMessage(Message msg )
      {   
       switch(msg.what)
       {
       case STATE_22:
        ConstructHttpBody("[201202201357250002,T01,29,13486108318@4@1;2;3;4@1@1@1@1]");
        break;
        
       case STATE_02:
        ConstructHttpBody("[201202201357250002,T31,1,0]");
        break;
       }
      }
     };
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
           
            InitWidget();
          
            btn2.setOnClickListener( new Button.OnClickListener()
            {
             @Override
             public void onClick(View v )
             {
              try
              {
               if( iCurrentState == STATE_21 )
                ConstructHttpBody("[201201172244290000,T21,55,16@222222333335555@460020863831969@89860048111151031969]");
              }
              catch(Exception e )
              {
               Log.e("XXX",e.toString());
              }
             }
            }
            ); 
        }

        private void ConstructHttpBody(String strBody)
        {
         HttpPost httpRequest = new HttpPost(strUrl);
      httpRequest.setHeader("User Agent",strUserAgent);
      
      try
      {
       StringEntity strEntity = new StringEntity(strBody,HTTP.UTF_8);
       httpRequest.setEntity(strEntity);
       HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
       
       int ret = httpResponse.getStatusLine().getStatusCode();
          
       if(ret == 200 )
       {
        Message msg = new Message();
        String str = EntityUtils.toString(httpResponse.getEntity());
        
        textView.setText(str);
        
        if( str.indexOf("T22",0) > 0 )
        {
         msg.what = STATE_22;
         msg.obj = str;
        }
        else if( str.indexOf("T02",0) > 0 )
        {
         msg.what = STATE_01;
         msg.obj = str;
        }    
        
        handler.sendMessage(msg);
       }
       else
       {
        Toast.makeText(MainActivity.this,""+ ret ,Toast.LENGTH_SHORT).show();
       }
      }
      catch(Exception e )
      {
      }
        }

       
        private void InitWidget()
        {
         btn = (Button)findViewById(R.id.btn);
         btn2 = (Button)findViewById(R.id.btn2);
         textView = (TextView)findViewById(R.id.text);
         editText = (EditText)findViewById(R.id.edit);
        }
       
        @Override
        protected void onDestroy()
        {
         super.onDestroy();
         System.gc();
         System.exit(0);
        }
    }

  • 相关阅读:
    在Power BI报表和仪表板中显示刷新日期时间
    微软Power BI 每月功能更新系列——12月Power BI 新功能学习
    在Microsoft Power BI中创建地图的10种方法
    您应该将报表从Excel转换为Power BI的8个原因
    OBS录制全屏游戏的方法(超好录屏)
    关于Adobe Premiere Pro视音频不同步的解决方法
    Npcap:Nmap项目里一个为Windows而生的嗅探库 Npcap: Nmap Project's packet sniffing library for Windows
    关于被malloc分配内存的指针
    VS2017 高级使用方法
    Npcap环境配置(Winpcap后继者) pcap的一种
  • 原文地址:https://www.cnblogs.com/rollrock/p/2370243.html
Copyright © 2011-2022 走看看