android 网络之 httppost

本文介绍了一个关于Android测试代码的示例,演示如何在Android应用中使用HTTP协议进行通信,包括设置URL、用户代理、构造HTTP请求体以及响应处理。

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);
    }
}

转载于:https://www.cnblogs.com/rollrock/archive/2012/02/27/2370243.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值